Krydom: 暁の水平线に胜利を刻むのです

ソロモンの悪夢、見せてあげる!

@krydom1年前

06/2
19:33
最小割

[bzoj 2561] 最小生成树

♦♦♦♦♦♦   Description   ♦♦♦♦♦♦

 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上?

♦♦♦♦♦♦   Input   ♦♦♦♦♦♦

第一行包含用空格隔开的两个整数,分别为N和M;
接下来M行,每行包含三个正整数u,v和w表示图G存在一条边权为w的边(u,v)。
最后一行包含用空格隔开的三个整数,分别为u,v,和 L;
数据保证图中没有自环。

♦♦♦♦♦♦   Output   ♦♦♦♦♦♦

输出一行一个整数表示最少需要删掉的边的数量。

♦♦♦♦♦♦   Sample Input   ♦♦♦♦♦♦

3 2
3 2 1
1 2 3
1 2 2

♦♦♦♦♦♦   Sample Output   ♦♦♦♦♦♦

1

♦♦♦♦♦♦   Hint   ♦♦♦♦♦♦

♦♦♦♦♦♦   题解  ♦♦♦♦♦♦

假设先求出现在最小生成树上,那么要保证只保留小于l的边之后u和v不连通,所以只要把小于l的边保留,边权为1,u和v分别设为源和汇做一遍最小割。出现在最大生成树上的情况类似。

然后把两个最小割的答案加起来就是最终答案,因为保证第一次只删小于l的,第二次只删大于l的,两边的情况是互斥的

 

[bzoj 2561] 最小生成树