"大红大紫" 0分警告,大佬求改!
查看原帖
"大红大紫" 0分警告,大佬求改!
1384725
chen_Man楼主2025/7/18 19:11
#include <bits/stdc++.h> 
using namespace std;
int n,m,idx=0,ma=0,imax=0,jmax=0,cnt=0,sum=0,x[1001][3]={{0}},a[1001][1001]={{0}};
string s[1001];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>s[i];
	for(int i=1;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(s[i+1][j]=='#' || s[i-1][j]=='#' || s[i][j+1]=='#' || s[i][j-1]=='#'){
				a[i][j]++;
			}else if(s[i][j]=='#'){
				a[i][j]++,idx++;
				x[idx][0]=i;
				x[idx][1]=j;	
			}else a[i][j]=0;
		}
	}
	for(int i=1;i<=idx;i++){
		if(a[x[idx][0]][x[idx][1]]==1) cnt++;
		if(a[x[idx][0]][x[idx][1]-1]==1) cnt++;
		if(a[x[idx][0]][x[idx][1]+1]==1) cnt++;
		if(a[x[idx][0]+1][x[idx][1]]==1) cnt++;
		if(a[x[idx][0]-1][x[idx][1]]==1) cnt++;
		if(ma<cnt){
			ma=max(ma,cnt);
			imax=x[idx][0];
			jmax=x[idx][1];
		}
		cnt=0;
	}
	a[imax][jmax]--,a[imax][jmax-1]--,a[imax][jmax+1]--,a[imax-1][jmax]--,a[imax+1][jmax]--;
	for(int i=1;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(a[i][j]==0) sum++;
		}
	}
	cout<<sum+ma;
	return 0;

2025/7/18 19:11
加载中...