随笔分类 - 图论——————最小生成树
摘要:gate 求出一条s到t的路径,使得这条路径上经过最高温度最小的前提下,总长度最短。 什么最大值最小很容易想到二分...就每次枚举最高温度然后在这个温度下跑最短路看是否连通。 但是这道题也可以用最小生成树的算法来做qwq 想要温度尽量小,就以温度为关键字,跑一遍最小生成树,就得到了使s,t连通所需要
阅读全文
摘要:传送门>> 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 这个算法叫..WQS二分/带权二分/DP凸优化 用来解决一种特定类型的问题: 有n个物品,选择每一个都会有相应的费用,需要求出强制选need个物品时的最大/最小费用。 适用范围:设$f(x)$
阅读全文
摘要:Luogu P4716 【模板】最小树形图 最小树形图就是在有向图上,以某一点作为根的一棵最小生成树。 这个算法是基于贪心和缩点的思想。 步骤: (1)先求出最短弧集合E0(图上所有点的边权最小的入边的集合); (2)如果E0不存在,则图的最小树形图也不存在,跳出循环; (3)如果E0存在且不具有环
阅读全文
摘要:传送门 求一棵生成树,使它的最大边权与最小边权之差最小。 假设已经求出了一棵最小生成树,它的最小边权一定是图上所有边中最小的;它的最大边也应该是相对最小的。 也就是说,不改变当前最小边,它的边权差只能变大,答案不可能变得更优了。 那么想要答案更新,只可能是最小边变大,最大边也变大。 那么删去最小边,
阅读全文
摘要:传送门 求一棵最小生成树,要求:忽略树上s-1条边的边权后,最大的边最小。 (因为卫星频道是两两互达的,所以想把连接两个联通块之间的边权忽略必须用两个联通块都放置卫星频道。也就是至少要两个) emmm...其实我本来想的是分层最短路那种动态规划,记录用了几次忽略机会。 假设已经求出答案最小生成树,忽
阅读全文
摘要:传送门 要使n个农场从其他农场引水,或自己打井。 对于每个农场,最小花费为与min(自己打井,min(与其他农场连接)); 当然,至少有一个农场打井。 这样选择后,得到了若干个联通块,每个块中有一个农场打井。 那么可以看出,每个农场需要直接或间接与水源相连。 把水源看作一个中转节点(虚根),每个农场
阅读全文
摘要:qwq 这题是知道了正解做法才写的.. 求每两点间最小权值最大的路径,本来我以为要每个点都跑一遍dij(?),后来意识到生成树好像是用来找这个的( ´▽`) 然后我问dtxdalao对不对,他说“我记得这道题好像要用倍增”(我:???剧透会被关进小黑屋的) 其实就是最大生成树是随便建的,然后对于每两
阅读全文
摘要:qwq $kruskal$算法 按边权从小到大排序,并查集合并即可。 #include<cstdio> #include<algorithm> using namespace std; int fa[200005]; int n,m; struct abc { int from,to,w; } q[
阅读全文