请求支援哇八个
查看原帖
请求支援哇八个
1242018
aleavf楼主2024/8/18 15:39
#include<bits/stdc++.h>
using namespace std;
long long ans,sum,n,ans1,sum1,s=1;
char a[1001][1001],b[1010][1010];
void bfs(int x,int y){
	if(x<1||y<1||x>n||y>n||a[x][y]!='#') return;
	a[x][y]='.';
	if(a[x+1][y]=='#'){
	bfs(x+1,y);s++;} 
	if(a[x-1][y]=='#'){
	bfs(x-1,y);s++;}
	if(a[x][y+1]=='#'){
	bfs(x,y+1);s++;}
	if(a[x][y-1]=='#'){
	bfs(x,y-1);s++;}
}
void bfa(int x,int y){
	if(x<1||y<1||x>n||y>n||b[x][y]!='#') return;
	b[x][y]='!';
	if(b[x+1][y]=='.') s++;
	if(b[x-1][y]=='.') s++;
	if(b[x][y+1]=='.') s++;
	if(b[x][y-1]=='.') s++;
	bfa(x+1,y);
	bfa(x-1,y);
	bfa(x,y+1);
	bfa(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];b[i][j]=a[i][j];}
	for(int i = 1;i<=n+1;i++) b[i][n+1]='.';
	for(int i = 1;i<=n+1;i++) b[n+1][i]='.';
	for(int i = 1;i<=n;i++){
		for(int j = 1;j<=n;j++){
			if(a[i][j]=='#') bfs(i,j);
			if(s>ans1) ans1=s ;s=0;
			if(b[i][j]=='#') bfa(i,j);
			if(s>sum1) sum1=s;s=1;
			if(ans1>ans){
				ans=ans1;
				sum=sum1;
			}
			if(ans1==ans)sum=min(sum,sum1);
		}
	}
	cout<<ans<<' '<<sum;
}
2024/8/18 15:39
加载中...