社区讨论

站外题

学术版参与者 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 次询问。
n103,1ai,bin,q105n\le 10^3,1 \le a_i,b_i\le n,q\le 10^5
本人作死用Floyd,求条,仅仅WA,时限1s

回复

18 条回复,欢迎继续交流。

正在加载回复...