求助,萌新初学 Kosaraju
  • 板块学术版
  • 楼主liuzimingc
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/8/10 11:53
  • 上次更新2023/11/4 11:12:32
查看原帖
求助,萌新初学 Kosaraju
421781
liuzimingc楼主2021/8/10 11:53

有点不明白……看 OIwiki 写的:

void dfs1(int x) {
    vis[x] = true;
    for (int i = 0; i < p1[x].size(); i++)
        if (!vis[p1[x][i]]) dfs1(p1[x][i]);
    s.push_back(x);
}

void dfs2(int x) {
    f[x] = tot;
    for (int i = 0; i < p2[x].size(); i++)
        if (!f[p2[x][i]]) dfs2(p2[x][i]);
}

void kosaraju() {
    tot = 0;
    for (int i = 1; i <= n; i++)
        if (!vis[i]) dfs1(i);
    for (int i = n; i >= 1; i--)
        if (!f[s[i]]) {
            tot++;
            dfs2(s[i]);
        }
}

请问这样跑完之后,如果要解决 刻录光盘 这道题,应该怎么写呢,谢谢大佬!

2021/8/10 11:53
加载中...