真·阿美利卡开荒
2026-03-10 22:53:24
发布于:广东
荒地开荒
——GESP四经典题目:点击进入
方法
核心思想
-
分类
-
计算
-
最优
代码
#include<bits/stdc++.h>
using namespace std;
char ma[10015][10015];
int a[10086][12345];
int d[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int main(){
int n,m,ans=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>ma[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int num=0,p=-1;
for(int k=0;k<=3;k++){
if(ma[i+d[k][0]][j+d[k][1]]=='#'){
num++;
p=k;
}
}
if(ma[i][j]=='.'&&num==1)a[i+d[p][0]][j+d[p][1]]++;
else if(ma[i][j]=='.'&&num==0) ans++;
else if(ma[i][j]=='#'&&num==0) a[i][j]++;
}
}
int mx=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
mx=max(mx,a[i][j]);
}
}
cout<<ans+mx<<endl;
}
全部评论 1

1周前 来自 浙江
0




















有帮助,赞一个