• CSU 2166: 卖萌表情(2018湖南省赛)


    传送门

    这题需要确定每种表情的2种形式的优先级,然后直接遍历一遍矩阵即可。

    两种表情是第二个形式的优先级高

    
    /*
    通过 ^ ^ ^   和 ^ ^ ^  可以确定第一种
          v v v    v v v    
    通过     和             可以确定第二种
         >         <
        <           >
         >         <
        <           >
         >         < 
        <           >
      
    */
    #include<bits/stdc++.h>
    #define fuck(x) cout<<#x<<" "<<x<<endl;
    using namespace std;
    char mp[1005][1005];
    int main()
    {
        int n,m,ans;
        while(scanf("%d %d",&n,&m)!=EOF)
        {
            ans=0;
            for(int i=0;i<=n+5;i++)
                for(int j=0;j<=m+5;j++)
                    mp[i][j]=0;
            for(int i=1;i<=n;i++)
                scanf("%s",mp[i]+1);
            for(int i=1;i<=n;i++)
                for(int j=1;j<=m;j++)
                {
                    if(mp[i][j]=='^')
                    {
                        if(mp[i+1][j-1]==mp[i+1][j+1]&&mp[i+1][j+1]=='v')
                        {
                            ans++;
                            mp[i][j]=mp[i+1][j-1]=mp[i+1][j+1]=0;
                            ///fuck(i);
                            ///fuck(j);
                            ///cout<<2<<endl;
    
                        }
                        else
                            if(mp[i][j+2]=='^'&&mp[i+1][j+1]=='v')
                            {
                                ans++;
                                mp[i][j]=mp[i][j+2]=mp[i+1][j+1]=0;
                                ///fuck(i);
                                ///fuck(j);
                                ///cout<<1<<endl;
                            }
                    }
                    else
                        if(mp[i][j]=='<')
                        {
                            if(mp[i-1][j+1]=='>'&&mp[i+1][j+1]=='>')
                            {
                                ans++;
                                mp[i][j]=mp[i-1][j+1]=mp[i+1][j+1]=0;
                                ///fuck(i);
                               ///fuck(j);
                                ///cout<<3<<endl;
                            }
                            else
                                if(mp[i+1][j+1]=='>'&&mp[i+2][j]=='<')
                                {
                                    ans++;
                                    mp[i][j]=mp[i+1][j+1]=mp[i+2][j]=0;
                                }
                        }
                }
            printf("%d
    ",ans);
        }
    
        return 0;
    }
    
    /**********************************************************************
    	Problem: 2166
    	User: leon_
    	Language: C++
    	Result: AC
    	Time:48 ms
    	Memory:3008 kb
    **********************************************************************/
    
  • 相关阅读:
    juicer
    了解Hypertable
    PHP中抽象类与接口的区别
    结对编程
    MySQL的分支
    ThinkPHP3.2.3学习笔记4---统计ThinkPHP3.2.3加载的文件
    对于多线程程序,单核cpu与多核cpu是怎么工作的
    IT行业技术及程序员相关网站荟萃
    参观中关村软件园二期小记
    旋转图css3
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754869.html
Copyright © 2020-2023  润新知