社区讨论

WA,求助

P1162填涂颜色参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mhiywcgs
此快照首次捕获于
2025/11/03 17:58
4 个月前
此快照最后确认于
2025/11/03 17:58
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[31][31];
int b[31][31],f[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n;
void dfs(int x,int y){
    for(int i=1;i<=4;i++){
        int dx=x+f[i][0];
        int dy=y+f[i][1];
        if(dx<1||dx>n||dy<1||dy>n){
            continue;
        }
        if(a[dx][dy]==0&&b[dx][dy]==0){
            b[dx][dy]=1;
            dfs(dx,dy);
        }
    }    
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if((i==1||i==n||j==1||j==n) && a[i][j]==0 && b[i][j]==0&&(a[i-1][j]==1)||a[i][j-1]==1){
                b[i][j]=1;
                dfs(i,j);
                break;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(b[i][j]==1&&a[i][j]==0){
                cout<<2<<" ";
            }else{
                cout<<a[i][j]<<" ";
            }
        }
        cout<<endl;
    }
}

回复

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

正在加载回复...