并查集&最小生成树(8.6)
qq_39479426
井底之蛙
展开
-
UVa1197
并查集模版题,把同一俱乐部的放入同一个集合,最后统计和0在同一个集合的数字 #include<iostream>#include<cstdio>#include<string.h>#include<stack>#include<set>#include<map>#include<vector>#原创 2018-08-13 00:03:21 · 139 阅读 · 0 评论 -
HDU1829
Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gend...原创 2018-08-13 00:08:13 · 331 阅读 · 0 评论 -
POJ1182
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话...原创 2018-08-13 00:18:37 · 153 阅读 · 0 评论 -
UVA1160
题意:给定一些包裹,里面有两个爆炸物,爆炸物用数字表示(1,2,3.......),如果能选取几个包裹使得其中各个数字都含K个(K>=2),则会爆炸,要剔除这些情况,包裹是按顺序放的,如果符合必须接收,不符合必须剔除,问至少要除去几个包裹思路:画个图就可以看出来了:将可以接纳的包裹构造成集合,如果集合内产生环路的话则会产生爆炸,所以只要判断这次要加入的数字是否在同一个集合就行#in...原创 2018-08-13 00:25:56 · 133 阅读 · 0 评论 -
UVa11987
题意:模拟三种操作思路:按题意模拟即可,麻烦的将p移动到q的集合,不能直接将p的父结点改为q的父结点,因为p可能是某个集合的根节点。解决的方法是不移动p结点,而维护集合的个数和集合元素和的关系,如果将p加入q的集合,则另外增加一个新的结点加入q的集合,而原来的p结点就变成了一个虚拟结点,对结果没有影响。所以开辟一个id数组记录改变后的结点的位置,使用时都从id数组中取数。#include...原创 2018-08-13 00:30:22 · 285 阅读 · 0 评论 -
UVaLive2515
Kruskal模板题,对着板子敲就行了#include<iostream>#include<cstdio>#include<string.h>#include<stack>#include<set>#include<map>#include<vector>#include<algo原创 2018-08-13 00:31:49 · 252 阅读 · 0 评论 -
UVa10369
Prim模板题:先将每个点之间的距离处理一下,然后随便选取一个结点作为起始结点,Prim算出所有结点到生成树的最小距离后,有S个城市是可以使用卫星通信的,由于求的是至少需要的距离,把最大的(S-1)个距离分给卫星频道,最后输出第(S-1)个大的距离即可#include<iostream>#include<cstdio>#include<string.h>...原创 2018-08-13 00:35:25 · 309 阅读 · 0 评论