求助
  • 板块灌水区
  • 楼主haimingbei
  • 当前回复12
  • 已保存回复12
  • 发布时间2024/8/18 19:41
  • 上次更新2024/8/18 20:50:59
查看原帖
求助
1235026
haimingbei楼主2024/8/18 19:41

广搜写的,哪有问题!!!!!!!!!!!!!!!!!!!(蒟蒻快疯了) P1506

#include<bits/stdc++.h>
using namespace std;
int a[520][520],n,m;;
bool b[520][520];
int px[5]={0,1,0,-1,0};
int py[5]={0,0,-1,0,1};
struct code{
		int x,y;
};
void bfs(int qx,int qy){
	b[qx][qy]=1;
	queue <code> q;
	code f;
	f.x=qx,f.y=qy;
	q.push(f);
	int x2,y2;
	while(!q.empty()){
		x2=q.front().x,y2=q.front().y;
		q.pop();
		for(int i=1;i<=4;i++){
			int u=x2+px[i],v=y2+py[i];
			if(u>=1 && u<=n && v>=1 && v<=m && b[u][v]!=1){
				b[u][v]=1;
				code ff;
				ff.x=u,ff.y=v;
				q.push(ff);
			}
		}
	}
}
int main(){
	int ans=0;
	cin>>n>>m;
	char c;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>c;
			if(c=='*')b[i][j]=1;
		}
	}
	for(int i=1;i<=m;i++)	bfs(1,i);
	for(int i=1;i<=m;i++)	bfs(n,i);
	for(int i=1;i<=n;i++)	bfs(i,1);
	for(int i=1;i<=n;i++)	bfs(i,m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(b[i][j]==0)ans++;
		}
	}
	cout<<ans;
	return 0;
}
2024/8/18 19:41
加载中...