10f分求助!!!
查看原帖
10f分求助!!!
1274525
Gilbert1206楼主2024/9/6 15:44

样例一下载了数据运行是对的,但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;
}

能帮助者必关!!!

2024/9/6 15:44
加载中...