链接 BZOJ 2561 题解 用Kruskal算法的思路来考虑,边(u, v, L)可能出现在最小生成树上,就是说对于所有边权小于L的边,u和v不能连通,即求最小割: 对于最大生成树的情况也一样.容易看出两个子问题是各自独立的,把两个最小割相加即可. #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> using…
看错题了以为多组询问吓得不行-- 其实还挺好想的,就是数据范围一点都不网络流.把U作为s,V作为t,以最小生成树为例,(U,V,L)要在最小生成树上,就要求所有边权比L小的边不能连通(U,V)所在的联通块.这样一来模型就很显然了,就是对所有边权<L的边建边(u,v,1)(v,u,1),然后最小割即可.建双向边是因为反正只会割掉一条-- #include<iostream> #include<cstdio> #include<cstring> #include<…
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: 数据…
BZOJ_2561_最小生成树_最小割 题意: 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上? 分析: 如果所有边中有能使u,v连通且权值比L小的,那新加的这条边就不会出现在最小生成树上,最大生成树同理,那么问题就转化成求u,v之间的最小割,最小和最大分别做一次,相加即可.…
U,V能在最小(大)生成树上,当且仅当权值比它小(大)的边无法连通U,V. 两次最小割就OK了. --------------------------------------------------------------------- #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<vector> #include<que…
https://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑Kruscal算法求最小生成树的流程 如果 u和v之间的长为L的边能出现在最小生成树里,说明<L的边不能时u和v联通 即求图中只存在<L的边时,u和v的最小割 如果 u和v之间的长为L的边能出现在最大生成树里,说明>L的边不能时u和v联通 即求图中只存在>L的边时,u和v的最小割 #include<cstdio> #include<queue> #…
题意 对于某一条无向图中的指定边 \((a, b)\) , 求出至少需要多少次操作.可以保证 \((a, b)\) 边在这个无向图的最小生成树中. 一次操作指: 先选择一条图中的边 \((u, v)\), 再把图中除了这条边以外的边, 每一条的权值都减少 \(1\) . \(n \le 500, m \le 800, 1 \le w_i < 10^6\) 题解 给除了一条边的所有边权 \(-1\) ,相当于给这条边的边权 \(+1\) . 利用生成树的结论,一条边 \(u \to v\) (权值…
题目描述 Secsa最近对最小生成树问题特别感兴趣.他已经知道如果要去求出一个n个点.m条边的无向图的最小生成树有一个Krustal算法和另一个Prim的算法.另外,他还知道,某一个图可能有多种不同的最小生成树.例如,下面图 3中所示的都是图 2中的无向图的最小生成树: 当然啦,这些都不是今天需要你解决的问题.Secsa想知道对于某一条无向图中的边AB,至少需要多少代价可以保证AB边在这个无向图的最小生成树中.为了使得AB边一定在最小生成树中,你可以对这个无向图进行操作,一次单独的操作是指:先选…
题目描述 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上? 输入 第一行包含用空格隔开的两个整数,分别为N和M:接下来M行,每行包含三个正整数u,v和w表示图G存在一条边权为w的边(u,v).最后一行包含用空格隔开的三个整数,分别为u,v,和 L:数据保证图中没有自环. 输出…
题目 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上? 输入格式 第一行包含用空格隔开的两个整数,分别为N和M: 接下来M行,每行包含三个正整数u,v和w表示图G存在一条边权为w的边(u,v). 最后一行包含用空格隔开的三个整数,分别为u,v,和 L: 数据保证图中没有自环.…