mle求条
查看原帖
mle求条
1390444
This_is_my_choice楼主2024/8/12 20:26
#include<bits/stdc++.h>
using namespace std;
int n;
char a[1005][1005];
bool b[1005][1005];
int s;
void dfs(int x,int y){
	if(x==0||x==n+1||y==0||y==n+1){
		return;
	}
	if(a[x-1][y]=='#'){
		a[x-1][y]=='.';
		dfs(x-1,y);
	}
	if(a[x+1][y]=='#'){
		a[x+1][y]=='.';
		dfs(x+1,y);
	}
	if(a[x][y-1]=='#'){
		a[x][y-1]=='.';
		dfs(x,y-1);
	}
	if(a[x][y+1]=='#'){
		a[x][y+1]=='.';
		dfs(x,y+1);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]=='#'){
				b[i][j]=1;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i][j]=='#'){
				bool f=0;
				if(b[i-1][j]==0&&b[i-1][j]=='.'){
					f=1;
				}
				if(b[i+1][j]==0&&b[i+1][j]=='.'){
					f=1;
				}
				if(b[i][j-1]==0&&b[i][j-1]=='.'){
					f=1;
				}
				if(b[i][j+1]==0&&b[i][j+1]=='.'){
					f=1;
				}
				if(f){
					a[i][j]='.';
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i][j]=='#'){
				a[i][j]='.';
				s++;
				dfs(i+1,j);
				dfs(i-1,j);
				dfs(i,j+1);
				dfs(i,j-1);
			}
		}
	}
	cout<<s;
	return 0;
}

名字是被jc了

2024/8/12 20:26
加载中...