社区讨论
洛谷g++出问题了?
工单反馈版参与者 2已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @mi6ymae7
- 此快照首次捕获于
- 2025/11/20 12:57 4 个月前
- 此快照最后确认于
- 2025/11/20 12:57 4 个月前
代码:
CPP#include <cstdio>
#include <cstring>
const int maxn = 1005;
bool graph[maxn][maxn];
int vis[maxn][maxn];
int cnt[1000005];
int n, m;
char ch;
int nowID = 1;
int i2, j2;
const int di[4] = {0, 1, 0, -1};
const int dj[4] = {1, 0, -1, 0};
void dfs(int i = 0, int j = 0, int depth = 0)
{
vis[i][j] = nowID;
cnt[nowID]++;
for (int k = 0; k < 4; ++k)
{
i2 = i + di[k];
j2 = j + dj[k];
if (i2 >= 0 && j2 >= 0 && i2 < n && j2 < n && !vis[i2][j2] && (graph[i][j] != graph[i2][j2]))
dfs(i2, j2, depth + 1);
}
if (!depth)
nowID++;
}
int main()
{
scanf("%d%d", &n, &m);
getchar();
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
ch = getchar();
if (ch == '0')
graph[i][j] = false;
else
graph[i][j] = true;
}
getchar();
}
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
if (!vis[i][j])
dfs(i, j);
for (int k = 0; k < m; ++k)
{
int i, j;
scanf("%d%d", &i, &j);
printf("%d\n", cnt[vis[i - 1][j - 1]]);
}
return 0;
}
输入数据:
CPP8 4
10010011
01100100
10010011
01011011
10001000
00011011
00101000
00000010
1 2
8 6
6 2
4 3
洛谷输出:
CPP0
12
5
7
实际输出:
CPP25
19
1
25
已经在以下环境下测试过,结果相同:
Windows 10 64bit 17134 g++ 4.9.2
Ubuntu Server 16.04.5 64bit g++ 5.4.0请求大佬帮忙找找出什么事了 多谢!
kkksc03
哪个大佬帮忙召唤一下管理员啊
回复
共 9 条回复,欢迎继续交流。
正在加载回复...