20分求助 测试点在本地运行是正确的
  • 板块P1101 单词方阵
  • 楼主uwuuk
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/3 12:30
  • 上次更新2024/8/3 14:10:59
查看原帖
20分求助 测试点在本地运行是正确的
1381435
uwuuk楼主2024/8/3 12:30
#include <iostream>
#include <cstring>
using namespace std;
char p[200][200];
char mark[200][200];
int n;
int dx[8] = {1,0,-1,0,1,-1,-1,1};
int dy[8] = { 0,-1,0,1,1,1,-1,-1 };
int counter = 0;
char biao[8] = { '*','y','i','z','h','o','n','g' };
bool dfs(int x, int y,int z) {
    counter++;
    if (x>n||y>n||x<=0||y<=0) {
        return false;
    }
    else if (p[x][y]!=biao[counter]) {
        return false;
    }
    else if (p[x][y] == biao[counter] && counter == 7) {
        mark[x][y] = biao[counter];
        return true;
    }
    bool judge=dfs(x + dx[z], y + dy[z], z);
    if (judge == true) {
        mark[x][y] = p[x][y];
        return true;
    }
}
int main()
{
    memset(mark, '*', sizeof mark);
    cin >> n;
    for(int i=1;i<=n;i++)
        for (int j = 1; j <=n; j++) {
            cin >> p[i][j];
        }
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++) {
            for (int k = 0; k < 8; k++) {
                if(p[i][j]=='y')
                dfs(i, j, k);
                counter = 0;
            }
        }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cout << mark[i][j];
        }
        cout << "\n";
    }
    return 0;
}

在本地运行的第一个测试点是正确的 但是提交显示错误

2024/8/3 12:30
加载中...