随笔分类 - 图论 -- 最小生成树
摘要:Za Kruskal c++ include using namespace std; define ll long long const int N=2e5+5,M=5e5+5,inf=0x3f3f3f3f; int n,m; ll ans=0; templatevoid rd(t &x){ x=
阅读全文
摘要:CF891C Envy "CF891C" "luogu" ==是看的yyb的 1. 对于任意权值的边,所有最小生成树中这个权值的边的数量是一定的 2. 对于任意正确加边方案,加完小于某权值的所有边后图的连通性是一样的 将所有权值相同的边一起考虑 由2可得它们连出来的结果是固定的 将连边改为脸连通块
阅读全文
摘要:"[APIO2008]免费道路" "luogu3623" 题意:一个图边权为0或1,求一个生成树使得边权和为k 真叫我自己写的话我真的不会 这个题让我重新再理解了最小生成树 先kruskal一遍看在没有限制的条件下是否能够成一棵树 在第一遍的时候加进去的边权为0的边是一定要加的 再kruskal一遍
阅读全文
摘要:P4180 【模板】严格次小生成树[BJWC2010] 这个的INF必须得开大 最后找了一篇题解的INF复制上来 最小生成树和严格次小的区别? 用非树边替换最小生成树的一条边 枚举每一条非树边找两顶点树链上的最大边(如果最大边与非树边边权相同则找次大边) 然后更新最小增量 最大边和次大边可以通过树上
阅读全文
摘要:P1967 货车运输 A国有n座城市,编号从1到n城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。最大生成树+倍增算路径最小值 最大生成树就是kruskal时将边改为降序 然后就和普通krus
阅读全文
摘要:prim 又双叒叕看学长的模板写的 顺便重新感性理解优先队列 P3366 【模板】最小生成树 加一个cnt来记录加了多少个点 最后不足n个则表明没有连通 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<cstr
阅读全文