样例一下载了数据运行是对的,但WA了???
#include <bits/stdc++.h>
using namespace std;
int f[100][1000];
int n,m,num=0;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
queue<pair<int,int> >Q;
void dfs(int p,int q){
f[p][q]=0;
Q.push(make_pair(p,q));
while(!Q.empty()){
int x=Q.front().first;
int y=Q.front().second;
Q.pop();
for(int i=0;i<=3;i++){
int xx=dx[i]+x;
int yy=dy[i]+y;
if((xx>=1)&&(xx<=n)&&(yy>=1)&&(yy<=m)&&(f[xx][yy])){
Q.push(make_pair(xx,yy));
f[xx][yy]=0;
}
}
}
}
int main() {
char s[100];
cin>>n>>m;
getchar();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
f[i][j]=1;
}
}
for(int i=1;i<=n;i++){
fgets(s+1,100,stdin);
for(int j=1;j<=m;j++){
if(s[j]=='0'){
f[i][j]=0;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(f[i][j]){
dfs(i,j);
num++;
}
}
}
cout<<num;
return 0;
}
能帮助者必关!!!