"题面在这里" 思路: 如果直接去连边然后跑最小生成树的话,不难发现边数是$O(nq)$级别的。 于是我们可以观察一下这一张图: 不难发现每次添加的边是相邻的两个点之间互相连边,并且很重要的是,边权一次一次地变大。 考虑Kruskal的过程,如果有两条边$(u_1,v_1,w_1),(u_2,v_2 ...
分类:
其他好文 时间:
2018-11-04 12:35:06
阅读次数:
225
一直以来只会Kruskal prim和dijkstra很像 只不过prim维护的是最短的边,而dijkstra维护的是最短的从起点到一个点的路径 同时prim要注意当前拓展的边是没有拓展过的 可以用堆优化 堆优化版本 ...
分类:
其他好文 时间:
2018-10-31 23:26:53
阅读次数:
210
本题的思路有很多,这里只介绍一种: 最大生成树(Kruskal) 算法思路: 就是Kruskal的常规思路: 先是排序,再是用并查集连边,~~最后输出最大边权~~。 sort(e+1,e+1+m,cmp); for(int i=1;i ...
分类:
其他好文 时间:
2018-10-29 16:11:34
阅读次数:
188
转自 "hwzzyr的博客" kruskal重构树 由于重构树中把原树的点权转换成为了新建节点的边权,这一过程是这样实现的。 首先对边排序 然后使用并查集辅助加边,每新建一条边时: 新建节点indexindex(编号从n+1n+1开始) 将原有两节点所在集合改为indexindex 将原有节点与in ...
分类:
其他好文 时间:
2018-10-28 16:15:41
阅读次数:
235
P2872 [USACO07DEC]道路建设Building Roads kruskal求最小生成树。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 ...
分类:
其他好文 时间:
2018-10-27 18:42:20
阅读次数:
214
题目链接 https://www.luogu.org/problemnew/show/P4180 题目描述 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是 ...
分类:
其他好文 时间:
2018-10-23 10:56:43
阅读次数:
270
题目传送门 题意简化:给你一棵树,要求你加边使它成为完全图(任意两点间均有一边相连) ,满足原来的树是这个图的最小生成树。求加边的价值最小是多少。 考虑Kruskal的过程,我们每次找一条最短的,两边的集合没有并在一起的两条边。 而且有个结论:边权最小的边一定在图的最小生成树中。于是我们加的所有边一 ...
分类:
其他好文 时间:
2018-10-14 11:35:35
阅读次数:
201
题目传送门:http://codeforces.com/problemset/problem/875/F 题意:有$N$个王子和$M$个公主,每个公主或王子都只能选择至多一个王子或公主作为自己的结婚对象(王子选择公主,公主选择王子不然还怎么选)。每个公主有且仅有两个中意的王子$a,b$,她只会至多选 ...
分类:
其他好文 时间:
2018-10-11 21:47:07
阅读次数:
266
题目链接: IOI2018werewolf 题目中编号都是从0开始,太不舒服了,我们按编号从1开始讲QAQ。 题目大意就是询问每次从一个点开始走只能走编号在[l,n]中的点,在任意点变成狼,之后只能走[0,r]中的点,是否能到达另一个点。 后一部分其实就是找有哪些点只走[0,r]中的点能到达终点,那 ...
分类:
其他好文 时间:
2018-10-07 23:24:12
阅读次数:
203
今天在vjudge上做了这题,非常水的一道板子题,一眼就能看出来是个最小生成树 然后就用prim随便做了下 结果就超时了TT 但是我不会kruskal啊,没办法,就随便看了下这个算法的思想,发现还挺好理解的?就是个贪心+并查集 于是又一次自信满满地码完之后一交 又双叒超时了TT 最后错了两三次之后不 ...
分类:
编程语言 时间:
2018-10-07 23:19:26
阅读次数:
199