ans

wangruihao 2024-02-02 15:55:17 19 返回题目

#include<bits/stdc++.h>
using namespace std;
int ans=0,a[20][20];
int d[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
struct Node{
	int x,y;
};
queue<Node> q;
void bfs(int x,int y){
	if(a[x][y]==1) return;
	while(!q.empty()) q.pop();
	q.push({x,y});
	a[x][y]=1;
	while(!q.empty()){
		int x=q.front().x;
		int y=q.front().y;
		q.pop();
		for(int i=0;i<4;i++){
			int nx=x+d[i][0];
			int ny=y+d[i][1];
			if(nx>=1&&nx<=10&&ny>=1&&ny<=10&&a[nx][ny]==0){
				a[nx][ny]=1;
				q.push({nx,ny});
			}
		}
	}
} 
int main(){
	for(int i=1;i<=10;i++)
		for(int j=1;j<=10;j++) cin>>a[i][j];
	for(int i=1;i<=10;i++){
		bfs(1,i);
		bfs(i,1);
		bfs(10,i);
		bfs(i,10);
	}
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			if(a[i][j]==0) ans++;
		}
	}
	cout<<ans;
	return 0;
}
{{ vote && vote.total.up }}