TLE求dalao

P1451 求细胞数量

队头和队尾搞反了,抱歉。。。
by jifbt @ 2019-02-21 13:19:01


[记录](https://www.luogu.org/recordnew/show/16542877)已AC! 代码: ```cpp #include<stdio.h> #include<string.h> int m,n,c[1000][1000],a,q[1000000][2],h,t;bool v[1000][1000]; int main() { scanf("%d%d",&m,&n); for(int i=0;i<m;i++) for(int j=0;j<n;j++) scanf("%1d",&c[i][j]);//把j<n误为i<n for(int i=0;i<m;i++) for(int j=0;j<n;j++) { if(c[i][j]&&!v[i][j]) {//少了c[i][j] memset(q,0,sizeof(q)); q[0][0]=i,q[0][1]=j, h=0,t=-1,a++; while(h>t) { v[q[++t][0]][q[t][1]]=1; if(q[t][0]) if(c[q[t][0]-1][q[t][1]]&&!v[q[t][0]-1][q[t][1]]) q[++h][0]=q[t][0]-1,q[h][1]=q[t][1]; if(q[t][1]) if(c[q[t][0]][q[t][1]-1]&&!v[q[t][0]][q[t][1]-1]) q[++h][0]=q[t][0],q[h][1]=q[t][1]-1; if(q[t][0]!=m-1) if(c[q[t][0]+1][q[t][1]]&&!v[q[t][0]+1][q[t][1]]) q[++h][0]=q[t][0]+1,q[h][1]=q[t][1]; if(q[t][1]!=n-1) if(c[q[t][0]][q[t][1]+1]&&!v[q[t][0]][q[t][1]+1]) q[++h][0]=q[t][0],q[h][1]=q[t][1]+1; } } } printf("%d",a); return 0; }```
by jifbt @ 2019-02-21 17:36:18


|