社区讨论
洛谷读输出是不是有什么问题
P1101单词方阵参与者 6已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @m260m887
- 此快照首次捕获于
- 2024/10/12 18:30 去年
- 此快照最后确认于
- 2025/11/04 17:22 4 个月前
这是我的代码
CPP#include <bits/stdc++.h>
using namespace std;
char arr[105][105];
bool check[105][105];
int n;
int dir[8][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}};
map<char, int> mp = {{'y', 0}, {'i', 1}, {'z', 2}, {'h', 3}, {'o', 4}, {'n', 5}, {'g', 6}};
bool dfs(int x, int y, int d)
{
if (arr[x][y] == 'g')
{
check[x][y] = true;
return true;
}
int nx = x + dir[d][0];
int ny = y + dir[d][1];
if (nx >= 1 && nx <= n && ny >= 1 && ny <= n && mp.find(arr[nx][ny]) != mp.end())
{
if (mp[arr[nx][ny]] == mp[arr[x][y]] + 1)
{
if (dfs(nx, ny, d))
{
check[x][y] = true;
return true;
}
}
}
return false;
}
int main()
{
scanf("%d", &n);
getchar();
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
scanf("%c", &arr[i][j]);
getchar();
}
memset(check, false, sizeof(check));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (arr[i][j] == 'y')
{
for (int d = 0; d < 8; d++)
{
dfs(i, j, d);
}
}
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (check[i][j])
printf("%c", arr[i][j]);
else
printf("*");
}
printf("\n");
}
}
然后,样例用的是题目给的样例2,样例2在我的编译器上是完全可以过的,这个样例也是这道题第1个测试点,结果我把代码提交上去,五个全部WA?有没有大佬说说是不是洛谷读代码有啥问题?
回复
共 7 条回复,欢迎继续交流。
正在加载回复...