社区讨论
站外题
学术版参与者 4已保存回复 18
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @mhj10pjm
- 此快照首次捕获于
- 2025/11/03 18:57 4 个月前
- 此快照最后确认于
- 2025/11/03 20:32 4 个月前
CPP
int n, m, q, f[1001][1001];
void sovel()
{
cin >> n >> q;
memset(f, 127, sizeof(f));
rep(i, 1, n) f[i][i] = 0;
rep(i, 1, n)
{
int x, y;
x = read(), y = read();
if(x==y)continue;
f[x][y] = 1;
f[y][x] = 1;
}
rep(k, 1, n)
rep(i, 1, n)
rep(j, 1, n) if (f[i][k] < 1 << 30 && f[k][j] < 1 << 30)
f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
rep(i, 1, q)
{
int s, t;
s = read(), t = read();
if (f[s][t] < 1 << 30)
printf("%d\n", f[s][t]);
else
puts("-1");
}
}
有n
个城市,每个城市有两个传送点,第i
个城市的传送点能让你传送到ai,bi
这两个城市。
你想知道,从每个城市到达另一个城市,最少需要传送多少次?你需要回答q
次询问。
本人作死用Floyd,求条,仅仅WA,时限1s
回复
共 18 条回复,欢迎继续交流。
正在加载回复...