更好
2025-06-09 16:40:38
发布于:浙江
23阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char s[1010][1010];
int n,m,d[5][2]={{0,0},{-1,0},{1,0},{0,-1},{0,1}};
bool ok(int i,int j){
for(int k=0;k<5;k++){
int x=i+d[k][0],y=j+d[k][1];
if(s[x][y]!='.')return 0;
}return 1;
}
int main() {
cin>>n>>m;
for (int i=0;i<=n+1;i++)for(int j=0;j<=m+1;j++)s[i][j]='.';
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>s[i][j];
int ans=0;
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(ok(i,j))ans++;
int res=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int cnt=0;
if(s[i][j]=='#'){
s[i][j]='.';
for(int k=0;k<5;k++){
int x=i+d[k][0],y=j+d[k][1];
if(ok(x,y))cnt++;
}res=max(res,ans+cnt);
s[i][j]='#';
}
}
}cout<<res;
return 0;
}
这里空空如也
有帮助,赞一个