社区讨论

20分求调

B4263[GESP202503 四级] 荒地开垦参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mc7c5oxy
此快照首次捕获于
2025/06/22 15:18
8 个月前
此快照最后确认于
2025/11/04 07:01
4 个月前
查看原帖
CPP
#include<iostream>
using namespace std;
int n,m,sum=0,f=0,x1[4]={1,0,-1,0},y1[4]={0,-1,0,1},cnt=0,ss;
char a[1001][1001]={};
bool check(int x,int y){
    for (int i=0;i<4;i++){
        int nx=x+x1[i],ny=y+y1[i];
        if (nx>=1&&nx<=n&&ny>=1&&ny<=m&&a[nx][ny]=='#') return 0;
    }
    return 1;
}
int main(){
    cin>>n>>m;
    for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) cin>>a[i][j];
    int sum=0;
    for (int i=1;i<=n;i++) for (int j=1;j<=m;j++){
        if (a[i][j]=='.'&&check(i,j)) sum++;
    }
    for (int x=1;x<=n;x++){
        for (int y=1;y<=m;y++){
            if (a[x][y]=='#'){
                a[x][y]='.';
                cnt=0;
                if (check(x,y)) cnt++;
                for (int i=0;i<4;i++){
                    int nx=x+x1[i],ny=y+y1[i];
                    if (nx>=1&&nx<=n&&ny>=1&&ny<=m&&a[nx][ny]=='.'&&check(nx,ny)) cnt++;
                }
            }
            ss=max(ss,cnt);
            a[x][y]='#';
        }
    }
    cout<<ss+sum;
    return 0;
}
QAQ什么逆天玩意

回复

3 条回复,欢迎继续交流。

正在加载回复...