全WA求调
查看原帖
全WA求调
762086
Francium_楼主2024/5/25 21:12

代码·:

#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
char a[505][505];
bool vis[505][505];
void bfs(int s,int w){
	queue<pair<int,int> >q;
	q.push({s,w});
	while(!q.empty()){
		int x=q.front().first,y=q.front().second;
		q.pop();
		if(vis[x][y]||a[x][y]!='0')continue;
		if(x<1||x>n||y<1||y>m)continue;
		vis[x][y]=1;
		a[x][y]='@';
		q.push({x+1,y});
		q.push({x-1,y});
		q.push({x,y+1});
		q.push({x,y-1});
	}
}
int main(){
	//freopen("P1506_1.in","r",stdin);
	//freopen("!!1.in","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
			cin>>a[i][j];
	for(int i=1;i<=m;i++)if(a[i][1]!='*')bfs(i,1);
	for(int i=1;i<=n;i++)if(a[i][n]!='*')bfs(i,m);
	for(int i=1;i<=n;i++)if(a[1][i]!='*')bfs(1,i);
	for(int i=1;i<=m;i++)if(a[i][m]!='*')bfs(n,i);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
	    	if(a[i][j]=='0')ans++;cout<<a[i][j]<<" ";
		}
		cout<<endl; 
	}
			
	cout<<ans;
	//cerr<<ans;
	return 0;
} 
2024/5/25 21:12
加载中...