1 条题解

  • 3
    @ 2026-8-21 9:51:25
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,x,y;
    int dx[8]={-1,-1,0,1,1,1,0,-1};
    int dy[8]={0,1,1,1,0,-1,-1,-1};
    char boom[105][105];
    void f(int x,int y){
        boom[x][y]='2';
        for(int i=0;i<8;i++){
            int nx=dx[i]+x,ny=dy[i]+y;
            if(nx>=1&&nx<=n&&ny>=1&&ny<=m){
                if(boom[nx][ny]=='1') f(nx,ny);
                else if(boom[nx][ny]=='0') boom[nx][ny]='2';
            }
        }
    }
    int main() {
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>boom[i][j];
            }
        }
        cin>>x>>y;
        if(boom[x][y]=='1') f(x,y);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cout<<boom[i][j];
            }
            cout<<endl;
        }
        return 0;
    }
    

    信息

    ID
    473
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    67
    已通过
    25
    上传者