《A C 助 手》
2024-05-17 22:00:53
发布于:广东
34阅读
0回复
0点赞
给你们看看AC助手给我改的代码,有个地方不太对劲。。。
来自题目:A8003 拯救小码君
#include <iostream>
using namespace std;
int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};
int n, m, ans;
char a[501][501];
bool is_in(int x, int y)
{
return x >= 0 && x < n && y >= 0 && y < m;
}
void dfs(int x, int y)
{
if (a[x][y] == '*' || a[x][y] == '*') <----
{
return;
}
a[x][y] = '*';
ans++;
for (int i = 0; i < 4; i++)
{
int x2 = x + dir[i][0];
int y2 = y + dir[i][1];
if (is_in(x2, y2))
{
dfs(x2, y2);
}
}
}
int main()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> a[i][j];
}
}
// 从边界开始,按顺时针方向进行DFS
for (int i = 0; i < n; i++)
{
dfs(i, 0);
dfs(i, m - 1);
}
for (int j = 0; j < m; j++)
{
dfs(0, j);
dfs(n - 1, j);
}
cout << ans << endl;
return 0;
}
这里空空如也
有帮助,赞一个