全错qaq!请大佬看看
查看原帖
全错qaq!请大佬看看
1297608
DESKDJKL楼主2024/11/20 19:42
#include <bits/stdc++.h>  

using namespace std;  

int n;   

int dx[8]={0,0,1,-1,1,1,-1,-1};  

int dy[8]={1,-1,0,0,1,-1,1,-1};  

char s[7]={'y','i','z','h','o','n','g'};  

char a[105][105];  

int b[105][105]; // is 0 print *  

void dfs(int x,int y,int i) {  

    b[x][y]=1;  

    if(i==6) {  

        return ;  

    }  

    else {  

        for(int j=0;j<8;j++) {  

            int nx=x+dx[j];  

            int ny=y+dy[j];  

            if(nx>=1&&ny>=1&&nx<=n&&ny<=n&&a[nx][ny]==s[i+1]) {  

                dfs(nx,ny,i+1);  

                b[nx][ny]=0;  

            }  

        }  

    }  

}  

int main() {  

    cin >> n;  

    for(int k=1;k<=n;k++)  

        for(int l=1;l<=n;l++)  

            cin >> a[k][l];  

    

    for(int i=1;i<=n;i++) {  

        for(int j=1;j<=n;j++) {  

            if(a[i][j]=='y') {  

                dfs(i,j,0);  

            }  

        }  

    }  

    

    for(int i=1;i<=n;i++) {  

        for(int j=1;j<=n;j++) {  

            if(b[i][j]==1)  

                cout << a[i][j];  

            else  

                cout << "*";  

        }  

        cout << endl;  

    }  

}
2024/11/20 19:42
加载中...