女赛--GirlCat

题意:找n行m列的字符里的girl和cat的个数
思路:深搜

感想,简单,感觉以前做过,数据量小,暴力就可以
代码:
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f;
int T,n,m,a,b,num,f[5]={1,-1,0,0},g[5]={0,0,1,-1},l,r;
char dd[5];
char ch[1005][1005];
int dfs(int x,int y,int now,int ll)
{
    if(ll==now) {++num;return 0;}
    for(int i=0;i<4;i++)
    {
        l=x+f[i];
        r=y+g[i];

        if(l<0||l>=n||r<0||r>=m) continue;
        if(ch[l][r]==dd[now]) dfs(l,r,now+1,ll);
    }
}
int main()
{
   scanf("%d",&T);
   while(T--)
   {
       scanf("%d%d",&n,&m);
       for(int i=0;i<n;i++)
        scanf("%s",ch[i]);
        dd[0]='g';
        dd[1]='i';
        dd[2]='r';
        dd[3]='l';
        num=0;
       for(int i=0;i<n;i++)
       {
           for(int j=0;j<m;j++)
           {
               if(ch[i][j]=='g')
                dfs(i,j,1,4);
           }
       }
       dd[0]='c';
        dd[1]='a';
        dd[2]='t';
       a=num;
       num=0;
       for(int i=0;i<n;i++)
       {
           for(int j=0;j<m;j++)
           {
               if(ch[i][j]=='c')
                dfs(i,j,1,3);
           }
       }
       printf("%d %d\n",a,num);
   }
}

猜你喜欢

转载自blog.csdn.net/qq_37868325/article/details/80287229