#include <bits/stdc++.h> using namespace std; int dir[4][2]={{0,-1},{-1,0},{0,1},{1,0}}; char ch[1010][1010]; int h,w; int gsum; int csum; void dfs(int i,int j,char c) { char ct; if(c=='g') ct='i'; else if(c=='i') ct='r'; else if(c=='r') ct='l'; else if(c=='c') ct='a'; else if(c=='a') ct='t'; for(int u=0;u<4;u++) { int ti=i+dir[u][0]; int tj=j+dir[u][1]; if(ti<0||ti>=h||tj<0||tj>=w) continue; if(ch[ti][tj]==ct) { if(ct=='l') { gsum++; continue; } else if(ct=='t') { csum++; continue; } dfs(ti,tj,ct); } } } int main() { int T; scanf("%d",&T); while(T--) { int Gsum=0,Csum=0; scanf("%d%d",&h,&w); for(int i=0;i<h;i++) scanf("%s",ch[i]); for(int i=0;i<h;i++) for(int j=0;j<w;j++) { if(ch[i][j]=='g') { gsum=0; dfs(i,j,'g'); Gsum+=gsum; } else if(ch[i][j]=='c') { csum=0; dfs(i,j,'c'); Csum+=csum; } } printf("%d %d\n",Gsum,Csum); } return 0; }
【DFS】GirlCat HDU5706
猜你喜欢
转载自blog.csdn.net/ummmmm/article/details/80337544
今日推荐
周排行