diff --git a/TangDou/AcWing_TiGao/T3/MinialSpanningTree/1148.cpp b/TangDou/AcWing_TiGao/T3/MinialSpanningTree/1148.cpp index d9c5816..eb2f4e1 100644 --- a/TangDou/AcWing_TiGao/T3/MinialSpanningTree/1148.cpp +++ b/TangDou/AcWing_TiGao/T3/MinialSpanningTree/1148.cpp @@ -12,7 +12,7 @@ struct Edge { bool operator<(const Edge &t) const { return c < t.c; } -} edge[M]; // 因为本题需要用链式前向星建图,所以避开了使用e做为边的数组名称 +} edge[M]; int d1[N][N]; // 从i出发,到达j最短距离 int d2[N][N]; // 从i出发,到达j次短距离 @@ -24,7 +24,6 @@ void add(int a, int b, int c) { } // 并查集 int p[N]; - int find(int x) { if (x == p[x]) return x; return p[x] = find(p[x]); @@ -74,7 +73,6 @@ signed main() { // Kruskal求最小生成树 for (int i = 0; i < m; i++) { int a = edge[i].a, b = edge[i].b, c = edge[i].c; - int pa = find(a), pb = find(b); if (pa != pb) { p[pa] = pb; // 并查集合并 @@ -96,7 +94,7 @@ signed main() { for (int i = 0; i < m; i++) if (!edge[i].flag) { int a = edge[i].a, b = edge[i].b, c = edge[i].c; - if (c > d1[a][b]) // 最小生成树外的一条边,(a-b),如果比最小生成树中a-b的最长边长,就有机会参加评选次小生成树。 + if (c > d1[a][b]) // 最小生成树外的一条边,(a->b),如果比最小生成树中a->b的最长边长,就有机会参加评选次小生成树。 // 最终的选举结果取决于它增加的长度是不是最少的 res = min(res, sum + c - d1[a][b]); // 替换最大边 else if (c > d2[a][b]) // 替换严格次大边 diff --git a/TangDou/Topic/【换根】dfs专题.md b/TangDou/Topic/【换根】dfs专题.md new file mode 100644 index 0000000..0bf4e37 --- /dev/null +++ b/TangDou/Topic/【换根】dfs专题.md @@ -0,0 +1,9 @@ +## 换根 $dfs$ 专题 + + + +#### [$AcWing$ $1072$ 树的最长路径](https://www.cnblogs.com/littlehb/p/15784687.html) + +#### [$AcWing$ $1073$. 树的中心](https://www.cnblogs.com/littlehb/p/15786805.html) + +#### [$AcWing$ $1148$ 秘密的牛奶运输](https://www.cnblogs.com/littlehb/p/16054005.html) \ No newline at end of file