我下了第一组数据,dev上输入输出和答案一模一样,站上就不行了,求助20分
#include
int m, n, f[4][2]={1, 0, -1, 0, 0, 1, 0, -1}, u[102][102]={{0}}, ans=0; char k[102][102];
void bfs(int x, int y) { int dx, dy, q1=1, q2=1, q3=1; int q[10005][2]={{0}}; ans++; q[1][0]=x; q[1][1]=y; u[x][y]=1; while(q1<=q2) { for(int i=q1;i<=q2;i++) { for(int j=0;j<4;j++) { dx=q[i][0]+f[j][0]; dy=q[i][1]+f[j][1]; if(dx>0&&dx<=n&&dy>0&&dy<=m) { if(k[dx][dy]!='0') { if(u[dx][dy]==0) { q3++; u[dx][dy]=1; q[q3][0]=dx; q[q3][1]=dy; } } } } } q1=q2+1; q2=q3; } }
int main() { scanf("%d%d", &n, &m); for(int i=1;i<=n;i++) { for(int j=0;j<=m;j++) { scanf("%c", &k[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(k[i][j]>'0'&&k[i][j]<='9'&&u[i][j]==0) { bfs(i, j); } } } printf("%d\n", ans); return 0; }