3 条题解

  • 1
    @ 2024-12-16 13:12:08

    `

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int inf=0x3f3f3f3f;
    const int f=1e9+7;
    const int N=2e5+10;
    char a[205][205];
    int n,m;
    void dfs(int i,int j){
        if(a[i][j]=='.' && a[i+1][j]=='.' && a[i][j+1]=='.' && a[i+1][j+1]=='*'  && i+1<=n && j+1<=m){
            a[i+1][j+1]='.';
            dfs(i+1,j+1);
        }
        if(a[i][j]=='.' && a[i+1][j]=='*' && a[i][j+1]=='.' && a[i+1][j+1]=='.'  && i+1<=n && j+1<=m){
            a[i+1][j]='.';
            dfs(i+1,j);
        }
        if(a[i][j]=='.' && a[i+1][j]=='.' && a[i][j+1]=='*' && a[i+1][j+1]=='.'  && i+1<=n && j+1<=m){
            a[i][j+1]='.';
            dfs(i,j+1);
        }
        if(a[i][j]=='.' && a[i+1][j-1]=='*' && a[i][j-1]=='.' && a[i+1][j]=='.' && i+1<=n && j-1>=1){
            a[i+1][j-1]='.';
            dfs(i+1,j-1);
        }
        if(a[i][j]=='.' && a[i+1][j-1]=='.' && a[i][j-1]=='*' && a[i+1][j]=='.' && i+1<=n && j-1>=1){
            a[i][j-1]='.';
            dfs(i,j-1);
        }
        if(a[i][j]=='.' && a[i+1][j-1]=='.' && a[i][j-1]=='.' && a[i+1][j]=='*' && i+1<=n && j-1>=1){
            a[i+1][j]='.';
            dfs(i+1,j);
        }
        if(a[i][j]=='.' && a[i-1][j]=='.' && a[i-1][j+1]=='*' && a[i][j+1]=='.' && i-1>=1 && j+1<=m){
            a[i-1][j+1]='.';
            dfs(i-1,j+1);
        }
        if(a[i][j]=='.' && a[i-1][j]=='*' && a[i-1][j+1]=='.' && a[i][j+1]=='.' && i-1>=1 && j+1<=m){
            a[i-1][j]='.';
            dfs(i-1,j);
        }
        if(a[i][j]=='.' && a[i-1][j]=='.' && a[i-1][j+1]=='.' && a[i][j+1]=='*' && i-1>=1 && j+1<=m){
            a[i][j+1]='.';
            dfs(i,j+1);
        }
        if(a[i][j]=='.' && a[i][j-1]=='.' && a[i-1][j]=='.' && a[i-1][j-1]=='*' && i-1>=1 && j-1>=1){
            a[i-1][j-1]='.';
            dfs(i-1,j-1);
        }
        if(a[i][j]=='.' && a[i][j-1]=='.' && a[i-1][j]=='*' && a[i-1][j-1]=='.' && i-1>=1 && j-1>=1){
            a[i-1][j]='.';
            dfs(i-1,j);
        }
        if(a[i][j]=='.' && a[i][j-1]=='*' && a[i-1][j]=='.' && a[i-1][j-1]=='.' && i-1>=1 && j-1>=1){
            a[i][j-1]='.';
            dfs(i,j-1);
        }
    }
    void solve()
    {
        cin >> n >> m;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++) {
                cin >> a[i][j];
            }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                dfs(i,j);
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cout << a[i][j];
            }
            cout << endl;
        }
    }
    void close(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
    }
    signed main ()
    {
        close();int T = 1;
    //    cin >> T;
        while(T--) solve();
        return 0;
    } //
    

    信息

    ID
    1096
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    递交数
    141
    已通过
    22
    上传者