并查集
Splaying
Studying
展开
-
HDU4496(D-City)
题目传送门D-CityProblem DescriptionLuxer is a really bad guy. He destroys everything he met.One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxer will destroy all the D-lines. The mayor of D-city原创 2020-05-24 11:38:30 · 120 阅读 · 0 评论 -
ZOJ3261(Connections in Galaxy War)
题目传送门题意大概意思就是有n个星球,每个星球都有自己的力量,然后接下来有m条双向的边,连接两点顶点,如果a 连接 b,b 连接 c,那么可以认为a 和 c也是连接的。接下来有q次操作,操作分为两种:query操作,查询和x连接的力量最强的星球是哪个,如果有多个力量一样大的找出编号小的destroy操作,删除x 和 y相连接的边。思路这道题还是挺不错的一道并查集题目,首先需要想到...原创 2020-05-04 19:57:26 · 118 阅读 · 0 评论 -
POJ1417(True Liars)
题目传送门题意题目说了一大堆的废话,简单一点说就是有n行输入形如x, y, str,str为yes表示x说y是天使,str为no表示x说y不是天使(x, y为天使,恶魔的编号,1<=x,y<=p+q);天使只说真话,恶魔只说假话;如果不能确定所有天使的编号,输出no,若能确定,输出所有天使的编号,并且以end结尾;注意:可能会有连续两行一样的输入;思路str == yes...原创 2020-05-03 16:42:06 · 703 阅读 · 0 评论 -
POJ2236(Wireless Network)
题目传送门题意南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队) 已经为膝上型电脑搭建了一个无线网络,但受到了一次不可预知的余震攻击,因此网络中的所有电脑都被破坏了。电脑被逐台修复,网络逐步恢复了工作。由于受到硬件的约束,每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点,也就是说,如果电脑 A 和电脑...原创 2020-05-02 21:15:09 · 225 阅读 · 0 评论 -
POJ1733(Parity game)
题目传送门题意有一个长度为n的序列,给出Q条限制,给出[l,r],str。str == odd 表示[l,r]区间内的数的和是奇数str == even 表示[l,r]区间内的数的和是偶数请你输出最小的不满足条件的编号-1,如果全部满足,输出限制条件总数Q。思路还是一道种类并查集。种类并查集详解这道题唯一不同的就是n的范围在10^9以内,数组开不了那么大,何况还得开两个,那就...原创 2020-05-02 15:41:10 · 445 阅读 · 0 评论 -
POJ1182(食物链)
题目传送门题意这是一道非常经典的并查集题目,或许应该叫种类并查集更好。题目意思很好理解,问题在于怎么去判断每一句话是真话还是假话还是不确定。思路x > n || y > n那肯定是假话不用加以其他的判断就能的出来d == 2 && x == y,既然x要吃掉y,那么x和y肯定不能相等啊,所以这也是一个假话。然后就是判断现在说的这句话与前面的话是...原创 2020-05-02 11:08:30 · 380 阅读 · 0 评论 -
HDU3038(How Many Answers Are Wrong)
题目传送门题意给出一个区间的长度 N,及 M 个子区间和, 形如:x y z, 表示子区间 [x, y] 的和为 z,如果一个“子区间和”与前面的“子区间和”冲突,即为错误(而且这个"子区间和"将在接下来的判断中被忽略),求总错误个数。思路大概是一道并查集变形的题目,据说叫扩展并查集。大概的思路全在下面的一张图里,手写不容易,看懂了就非常容易写出代码了。下面贴代码,注意一下细节这道题...原创 2020-05-01 14:15:51 · 107 阅读 · 0 评论 -
POJ1456(Supermarket)
题目传送门题意超市里有N个商品. 第i个商品必须在保质期(第di天)之前卖掉, 若卖掉可让超市获得pi的利润。每天只能卖一个商品。现在你要让超市获得最大的利润。思路这道题主体思想应该算是贪心,然后选择的过程中要么继续贪,要么用优先队列优化,要么选择并查集,三选一吧。最开始还以为自己加错题了,明明选的是并查集训练加了一道贪心进来,然后一路贪到底也过了。一贪到底思路:先对这个商品价格排序...原创 2020-05-01 10:33:56 · 186 阅读 · 0 评论 -
POJ2492(A Bug's Life)
题目传送门又是一道种类并查集,大概意思就是说给定m组数据,代表这两个昆虫可以交配,然后判断这m组数据是不是有冲突,冲突就是前面这两个昆虫被认定可以交配,后面发现这两个昆虫性别一样那么这组数据就矛盾了。种类并查集详解:#include <iostream>#include <cstring>#include <cstdio>#include <...原创 2020-04-30 19:31:08 · 163 阅读 · 0 评论 -
POJ1703(Find them, Catch them)
题目传送门题意这题大概意思就是有两个黑帮帮派,然后给定两个操作。A操作:询问a,b的关系,如果a,b是同一个帮派的输出"In the same gang.",如果a,b不是同一个帮派的输出"In different gangs.",如果不确定则输出"Not sure yet."。D操作:a,b两个人属于两个帮派。其实这道题应该这样说更好理解,D操作代表两个人是异性,A操作就是询问两个人...原创 2020-04-30 19:07:15 · 555 阅读 · 0 评论 -
HDU3635(Dragon Balls)
题目传送门题意题目说了很多废话,大概就是分两种操作:T a b就是把a城市的龙珠转移到b城市。Q a就是查询a龙珠在哪个城市,所属城市目前有多少个龙珠,a龙珠转移了几次到大所属城市。思路前面都很好处理,T操作的时候直接把a加到b上就可以,查询操作Q前面两个操作也好找,就并查集找根然后输出根的龙珠数,最最最麻烦的就是转移次数不好确定。既然要查询转移的次数那么我就不进行路径压缩,因为...原创 2020-04-30 14:37:00 · 223 阅读 · 0 评论 -
POJ1611(The Suspects)
题目传送门并查集入门题吧,大概意思就是给定一个很多节点集合,如果集合A中的元素在集合B中也出现过则,A集合和B集合属于同一个集合。然后最后问和0这个元素属于同一个集合的元素有多少个。思路并查集合并集合中的元素,如果遇到两个集合都出现过这个元素那么把这两个集合合并,这两个集合合并的时候按照集合大小合并。最后查找的时候先让0号元素去找到根节点,然后直接输出根节点有多少个元素就完事了。#inc...原创 2020-04-30 09:40:21 · 134 阅读 · 0 评论 -
HDU1856(More is better)
题目传送门解题思路:并查集入门题,大概意思就是求最大的集合有多少个人,并查集按照按照集合大小合并就可以。坑点:题目给的数据范围有点大,小心一点不然会超内存或者超时间。记得做路径压缩,输入用scanf,cin会T到飞起,还有就是n = 0的时候,代表没有给定的两个朋友,说明只有他一个人,那么n = 0的时候最大集合就是 1 。#include <iostream>#includ...原创 2020-04-29 14:49:35 · 180 阅读 · 0 评论 -
HDU1325 && POJ1308 (Is It A Tree?)
题目传送门题意每次给定两个节点a,b,代表从a -> b有一条右向边。然后问最后给定的这些边组合起来是不是一颗严格意义上的树型结构。首先树的性质有:除根节点外,任意一个节点的入度只能是1。n个节点的树有且只有n-1条边没有节点的树是一颗空树,一定要注意这个空树的情况没有环思路利用并查集合并,每个小子树,合并之前统计每个入点的度数。最后合并完的时候去判断,首先先判断是不是...原创 2020-04-29 14:48:08 · 143 阅读 · 0 评论