最小生成树
图论
Aloof__
笔记是记忆的缓冲
展开
-
牛客练习赛69 C-旅行 (贪心最大生成树)
C-旅行昨晚做的时候竟然能把看成u和v之间的最长路径的长度;思路:最大生成树;其实不证明的话猜两组数据就能看出来;证明的话放官方证明吧:作者:scimoon可以发现,对答案有贡献的边肯定是最大生成树上的边,那么可以将这些边先拉出来,每条边至少会被贡献一次对于当前的一个联通块,找到最小的一条边,那么这个联通块肯定被分成了两个联通块考虑怎么样才能使答案最优,显然先将一个联通块内选完以后在经过当前边到另一个联通块最优(因为两边的边比当前边要大),可以看出这条边只对答案贡...原创 2020-09-12 12:43:45 · 249 阅读 · 0 评论 -
AcWing 1148. 秘密的牛奶运输 (严格次小生成树)
整理的算法模板:ACM算法模板总结(分类详细版)农夫约翰要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。运输的总距离越小,运输的成本也就越低。低成本的运输是农夫约翰所希望的。不过,他并不想让他的竞争对手知道他具体的运输方案,所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。...原创 2020-05-01 11:28:16 · 283 阅读 · 0 评论 -
AcWing 346. 走廊泼水节 (kruskal+连通块size)
整理的算法模板:ACM算法模板总结(分类详细版)给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意:树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数t,表示共有t组测试数据。对于每组测试数据,第一行包含整数N。接下来N-1行,每行三个整数X,Y,Z,...原创 2020-04-30 18:16:05 · 192 阅读 · 0 评论 -
AcWing 1146. 新的开始 (prim+超级源点)
整理的算法模板:ACM算法模板总结(分类详细版)发展采矿业当然首先得有矿井,小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了nn口矿井,但他似乎忘记了考虑矿井供电问题。为了保证电力的供应,小 FF 想到了两种办法:在矿井ii上建立一个发电站,费用为vivi(发电站的输出功率可以供给任意多个矿井)。 将这口矿井ii与另外的已经有电力供应的矿井jj之间建立电网,...原创 2020-04-30 17:05:15 · 242 阅读 · 0 评论 -
AcWing 1145. 北极通讯网络 (kruskal最小生成树+连通块)
整理的算法模板:ACM算法模板总结(分类详细版)北极的某区域共有nn座村庄,每座村庄的坐标用一对整数(x,y)(x,y)表示。为了加强联系,决定在村庄之间建立通讯网络,使每两座村庄之间都可以直接或间接通讯。通讯工具可以是无线电收发机,也可以是卫星设备。无线电收发机有多种不同型号,不同型号的无线电收发机有一个不同的参数dd,两座村庄之间的距离如果不超过dd,就可以用...原创 2020-04-30 16:51:07 · 237 阅读 · 0 评论 -
AcWing 1141. 局域网 (最小生成森林)
整理的算法模板:ACM算法模板总结(分类详细版)某个局域网内有nn台计算机和kk条双向网线,计算机的编号是1∼n1∼n。由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。注意:对于某一个连接,虽然它是双向的,但我们不将其当做回路。本题中所描述的回路至少要包含两条不同的连接。 两台计算机...原创 2020-04-30 00:51:29 · 310 阅读 · 0 评论 -
Constructing Roads HDU - 1102(最小生成树)
There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two village A and B are connected, if and only if t...原创 2019-09-07 11:17:56 · 135 阅读 · 0 评论 -
畅通工程再续 HDU - 1875(最小生成树)
相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米。当然,为了节省资金,只要求实现任意2个小...原创 2019-09-06 16:57:55 · 83 阅读 · 0 评论 -
畅通工程 HDU - 1232(并查集)
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正...原创 2019-09-03 21:58:24 · 120 阅读 · 0 评论 -
还是畅通工程 HDU - 1233
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数...原创 2019-09-03 22:08:27 · 91 阅读 · 0 评论 -
Highways POJ - 2485(最小生成树)
The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public highways. So the traffic is difficult in Flatopia. The Flatopian government is aware of this problem. They’re pla...原创 2019-09-06 16:36:55 · 190 阅读 · 0 评论 -
最小生成树模板
Kruskal算法#include <bits/stdc++.h>using namespace std;const int maxx=1e6+7;struct node{ int x,y; int s;}bb[maxx];int pre[maxx];int find(int x){ int r=x; while(pre[r]!=r...原创 2019-08-09 19:26:23 · 174 阅读 · 0 评论