
并查集
smilestruggler
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #616 (Div. 2) E Prefix Enlightenment(并查集)
题目链接:https://codeforces.com/contest/1291/problem/E 题目大意: 有k个集合,每三个集合交集为空,有一堆灯泡,初始的开关由0和1表示,0表示关,1表示开。每次可以选择一个集合中的灯泡切换状态,输出i位1~n,1~i全亮的最少操作次数 题目思路: 在大佬眼里好像很简单,但是我感觉很难啊。。 首先由于每三个集合交集...原创 2020-02-06 00:12:57 · 374 阅读 · 0 评论 -
CH4101银河英雄传说(带权并查集)
题目链接:https://ac.nowcoder.com/acm/contest/1031/B题目大意:有n列战舰,两种命令,第一种命令是把i号战舰所在列接在j号战舰所在列后面,第二种命令是若第i号战舰和第j号战舰不在同一列输出-1,否则输出它们之间的战舰数量题目思路:设置一个d[x]表示x前面还有几个人,size[x]表示x这一列有多少人(x是队首),然后路径压缩的时候,每个...原创 2019-08-06 15:07:37 · 195 阅读 · 0 评论 -
POJ 1456(贪心+并查集)
题目链接:http://poj.org/problem?id=1456题目大意:给n个商品,每个商品有利润pi和过期时间di,每天只能卖一个商品,过期的不能再卖,求如何安排每天卖的东西使收益最大。题目思路:先将利润从大到小排序,由于每个物品卖的越迟,给其他物品留下的空间也就越多,所以需要将物品放在能卖的最后一天卖。建立并查集,维护每个点最后一个可以卖的地方,每卖出一个就让当前点...原创 2019-08-06 14:16:54 · 278 阅读 · 0 评论 -
Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem(并查集或2-SAT)
题目链接:https://codeforces.com/contest/776/problem/D题目大意:有n扇门,刚开始有的开着有的关着,有m个开关可同时改变多个门的状态,问是否能通过这些开关是所有门同时打开。题目思路:并查集做法:由于题目有个限制条件是一扇门最多被两个开关控制,所以可以用并查集。将按钮没按作为前m个,按了作为后m个,那么当门之前是开着的时候,控制它的按...原创 2019-08-04 15:22:43 · 191 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2)D. Gourmet choice(拓扑排序+并查集+思维)
题目链接:https://codeforces.com/contest/1131/problem/D 题目大意:给出n个数和m个数之间分别的大小关系,求使得最大数最小的情况 题目思路:如果全是>或者<这道题很简单,直接建图就结束了,但是这里有个=。这个等于的解决非常巧妙,使用并查集将=的点并在一起缩点然后这道题就转换成了只有>或<的情况 以下是代码:...原创 2019-02-24 17:18:25 · 240 阅读 · 0 评论 -
ICPC2017 Urumqi A Possible Tree(带权并查集)
题目链接:https://nanti.jisuanke.com/t/28968 题目大意: n个数字c个条件,然后n-1条边,问从上到下最多满足几个条件 题目思路:树上的异或,两点间无论怎么走都是两者最短路径上的异或和。r[i]表示i点到根节点的路径异或和。所以每次查条件的时候,如果两个人在同一链,那他俩有同一根节点,那么两者到根节点异或和的异或就是两者最近路上的异或。如果不是同一...原创 2018-08-24 00:00:03 · 170 阅读 · 0 评论 -
HDU 6411(并查集+位运算)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6411 题目大意:建一个图,然后算出可以互相到达的点的最大值乘以二者位运算的结果的和。 题目思路:先通过并查集把可以互相到达的点放在一起。然后对每个并查集内部进行排序,因为是最大值乘以二者位运算结果的和,所以排序后就是后面的值乘以与前面所有值的位运算结果的和。然后就是对位运算的理解。举个...原创 2018-08-23 11:16:47 · 415 阅读 · 0 评论 -
POJ 1988(带权并查集)
题目链接:http://poj.org/problem?id=1988 题目大意:最开始有N个砖头(1<=N<=30000),然后进行p次操作,M x y操作是将带x编号的那堆石头放到带y编号的那堆石头的头上,C x操作是查询x编号下面有几块石头 题目思路:设置一个sum[x]表示x为首的那堆石头里有几个石头,dis[x]记录x到自己那堆石头最头上石头的距离。当M x ...原创 2018-08-23 09:53:01 · 461 阅读 · 0 评论 -
ZOJ 4045(并查集+dfs)
题目链接:点击打开链接题目思路:比赛的时候是找根节点,然后退后,结果一直tle...................................难受.jpg看了学长代码。学长代码是直接深搜。从1开始,不停搜,搜到根节点以后开始退一步,然后把根节点爸爸的儿子都带进来(其实我当时的思路也是这样的QAQ),sum来记录这个节点有几个儿子(当时想了半天怎么分辨谁是儿子谁是爸爸,后来发现只要从根节点往回...原创 2018-06-11 19:17:24 · 380 阅读 · 0 评论 -
CodeForces 731C(并查集+vector+map)
题目链接:点击打开链接题目大意:就是先输入n,m,k,分别表示袜子数量,天数,颜色数量,接下来n个数字是代表每种袜子的颜色,再接下来m行,每行两个数,表示那一天穿哪两双袜子。要求改最小数量的袜子的颜色来使每天的袜子都是相同颜色的。 题目思路:先按照最正常的并查集,把需要同一颜色的袜子都变成一个集合,然后要先找一遍每个人的老大(之前没找,结果凉了..)如图这步..然后接下来就要进行遍历,从第一双袜子...原创 2018-02-26 17:23:15 · 323 阅读 · 0 评论