并查集
文章平均质量分 75
disPlayLzy_
梦在前方,路在脚下
展开
-
POJ P2560 Freckles
题目大意: 用墨水构建一个总路径长的雀斑集合。Kruskal+并查集: 简单的最小生成树,+并查集优化,不然会超时。 时间复杂度:O(N^2*(N-1))var a:array [0..101,0..101] of extended; x,y:array [0..101] of extended; f:array [0..101] of longint; i,j原创 2017-02-28 17:13:03 · 514 阅读 · 0 评论 -
Bzoj P4195 [Noi2015]程序自动分析___并查集+hash
题目大意:给出N个关系,每个关系包括一个X,Y,Z,当Z=1时,必须要满足X=Y,当Z=0时,必须要满足X≠Y,问所有的关系是否存在冲突,不存在输出YES,存在输出NO。给出N个关系,每个关系包括一个X,Y,Z,当Z=1时,必须要满足X=Y,当Z=0时,必须要满足X≠Y,问所有的关系是否存在冲突,不存在输出YES,存在输出NO。给出N个关系,每个关系包括一个X,Y,Z,当Z=1时,必须要满足X...原创 2018-05-29 16:59:51 · 269 阅读 · 0 评论 -
Poj P1456 Supermarket___贪心+并查集
题目大意:给出N个商品,每个商品都有利润Wi,以及过期时间Endi,每天只能卖一个商品,问如何安排商品的售卖,能使得收益最大,请输出最大收益。给出N个商品,每个商品都有利润Wi,以及过期时间Endi,每天只能卖一个商品,问如何安排商品的售卖,能使得收益最大,请输出最大收益。给出N个商品,每个商品都有利润W_i,以及过期时间End_i,每天只能卖一个商品,问如何安排商品的售卖,能使得收益最大,请...原创 2018-05-29 20:28:23 · 216 阅读 · 0 评论 -
Poj P1733 Parity game___带权并查集+hash
题目大意:给出M个区间的描述Li,Ri,str,当str为even时,表示区间[Li,Ri]有偶数个1,否则有奇数个1,题目会给出区间的最大长度N。给出M个区间的描述Li,Ri,str,当str为even时,表示区间[Li,Ri]有偶数个1,否则有奇数个1,题目会给出区间的最大长度N。给出M个区间的描述Li,Ri,str,当str为even时,表示区间[Li,Ri]有偶数个1,否则有奇数个1,...原创 2018-05-30 21:26:46 · 178 阅读 · 0 评论 -
Jzoj P1503 体育场___带权并查集
题目大意:有很多行,每一行都是一个环,由300300300个座位组成,对300300300个座位按照顺时针编号111到300300300。 门票上并没有规定每个人的座位,而是与这个圈中某个人的相对位置,可以坐在任意一行。 门票上标示的形式如下:A,B,xA,B,xA,B,x 表示第BBB个人必须在AAA的顺时针方向x个位置。 现在检票,如果拿到一张门票,与之前给定的矛盾,则被视为是假票,...原创 2018-07-09 19:53:49 · 193 阅读 · 0 评论 -
Jzoj P4261 最小代价___spfa+最小生成树
题目大意:给出一幅由nnn个点mmm条边构成的无向带权图,有些点是黑点,其他点是白点。 现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个黑点,可以选取其中任意一个),我们想要使得花费的代价最小。请问这个最小代价是多少? 注意:最后选出的边保证每个白点到离它最近的黑点的距离仍然等于原图中的最短距离。1≤n≤100000,1≤m≤2000001≤n≤100000,1≤m≤20...原创 2018-07-11 21:24:35 · 317 阅读 · 0 评论 -
Jzoj P5910 DuLiu___思维+并查集
题目大意:给出一个 nnn 个数的序列 aaa,每次操作可以将一个数变成整个序列的值的异或求最少需要多少次才能将 aaa 变成目标序列 bbb无法完成输出−1-1−11&lt;=N&lt;=1000001&lt;=N&lt;=1000001<=N<=100000数的大小&lt;230数的大小&lt;2^{30}数的大小<2...原创 2018-10-18 21:20:17 · 203 阅读 · 0 评论 -
Jzoj P5904 刺客信条___二分+并查集
题目大意:给出一个n∗mn*mn∗m的图,图上有TTT个点(ai,bi)(a_i,b_i)(ai,bi),左上角是(0,0)(0,0)(0,0),右下角是(n,m)(n,m)(n,m),设一条路径从(0,0)(0,0)(0,0)到(n,m)(n,m)(n,m),其中路径上所有点分别离TTT个点中最近的点的距离是x1,x2x_1,x_2x1,x2,设其中最小值是yiy_iyi,问所有从(...原创 2018-10-15 21:52:35 · 175 阅读 · 0 评论 -
Jzoj P5914 盟主的忧虑___思维+并查集
题目大意:给出一棵有NNN个节点的树的N−1N-1N−1条边,它们通过这些边不需要消耗费用,然后给出MMM条密道,需要花费wiw_iwi经过,将一开始的N−1N-1N−1条边分别断掉,然后每次求出两个点断掉以后通过剩下的边和密道使这两点连通花费的最少费用,无法连通就是-1。N,M&lt;=100,000N,M&lt;=100,000N,M<=100,000分析:容易...原创 2018-10-20 14:35:02 · 260 阅读 · 0 评论 -
Jzoj P4223 旅游___并查集
题目大意:nnn个点(从111开始标号),mmm条边相连,每条边有一个边权,给出QQQ个询问,每个询问给出一个限制xxx,问在除去边权>x>x>x的边以后,还能互相连通的点对个数,注意(A,B)(A,B)(A,B)和(B,A)(B,A)(B,A)是222个不同点对。1≤n≤2∗104,1≤m≤105,1≤边权≤105,Q≤50001≤n≤2*10^4,1≤m≤10^5,1≤边权≤10^5,Q≤...原创 2019-01-26 20:11:12 · 173 阅读 · 0 评论 -
Bzoj P2733 [HNOI2012]永无乡___splay合并+并查集
题目大意:n 座岛,从1到n编号,每座岛都有自己的独一无二的重要度。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛a出发经过若干座(含 0 座)桥可以到达岛b,则称岛a和岛b是连通的。有mmm个本来就存在的桥,有qqq个将要执行的操作,每个操作可以再新修一座桥或者查询一个岛屿所连通的所有岛重要度第kkk大的岛的编号。n≤100000,m≤n,q≤300000n≤10...原创 2019-06-13 20:42:54 · 145 阅读 · 0 评论 -
Jzoj P6224 正方形___动态规划+并查集
题目大意:分析:考虑离线:设fi,jf_{i,j}fi,j表示点(i,j)点(i,j)点(i,j)为右下角最多能向左上拓展多长的正方形,其对角线长度即为fi,jf_{i,j}fi,j任意相邻两点u,vu,vu,v间建边(u,v,w)(u,v,w)(u,v,w),w=min(fu,fv)w=min(f_u,f_v)w=min(fu,fv),然后将这些边存起来按www降序排列将询...原创 2019-06-18 21:38:28 · 332 阅读 · 0 评论 -
牛客练习赛47 题解
A DongDong破密码:给定n,m,给出长度为n的01串,每次向后移动一位,移动m-1次,最后求出这n+m-1位每一位的异或值成为密码。给出密码,问长度为n的01串是怎样的。2<=n+m<=10000002<=n+m<=10000002<=n+m<=1000000,保证有解分析:密码第iii位设为aia_iai,原...原创 2019-06-10 20:55:52 · 345 阅读 · 0 评论 -
Jzoj P3237 间谍派遣___最小生成树
题目大意:n个人,每个人都有一份情报人之间都可以交流,交流有对应的费用,交流完后各自享有对方的情报A与B交流,A与C交流,B与C也可以互相享有派遣一个人去执行任务有对应的费用要求:派遣的人需要包含所有的情报(不一定只派遣一个)问最小花费2≤n≤1000分析:建立一个新点S,交流的人之间建边,边权为交流费用所有的人向S建边,边权为派遣费用那么这题其实就是求一个最小生成树即可...原创 2019-07-20 15:55:58 · 135 阅读 · 0 评论 -
Luogu P2661 [Noip2015]信息传递___并查集求最小环
题目大意:有n个同学(编号为1到 n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 T_i的同学。 游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息, 但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知...原创 2018-05-19 08:54:36 · 618 阅读 · 0 评论 -
POJ P1330 Nearest Common Ancestors
题目大意:给出T组数据,每组有N个点,N-1条边,构成一颗树,给出一对点[x,y],问x和y的最近公共祖先是多少。2<=N<=10,000题解:这题是LCA的模版题吧。。 x,y的最近公共祖先,你可以这么想,x到根节点的路径跟y到根节点的路径的第一个交点z就是了。 tarjan离线做法,因为可以在一次遍历中把查询解决,所以时间复杂度为O(N+Q) tarjan解释这种东西想了很久觉得,还是意会原创 2017-12-28 20:38:05 · 221 阅读 · 0 评论 -
POJ P2524 Ubiquitous Religions
题目大意: 在一堆关系复杂的宗教信仰大学生中求出不同宗教的最大数目。 并差集: 1.一直把信仰同一种宗教的X和Y合并到一个集合。 2.for一遍累加不同集合个数(宗教个数) 时间复杂度:O(M)var f:array [0..50001] of longint; i,n,m,x,y,ans,g:longint;function find(c:longint):longint;原创 2017-02-24 20:24:47 · 269 阅读 · 0 评论 -
POJ P1611 The Suspects
题目大意: 在一堆人中找与0嫌疑犯有联系的人。 并差集: 1.把在一个小组中的人用并差集合全部做到一个集合中。 2.判断0嫌疑犯与1到N号学生是否在同一个集合,在就累加。 注意:0嫌疑犯本身就是可疑人数,ans初值为1。 时间复杂度:O(NM)var f:array [0..30001] of longint; i,j,k,n,m,x,y,z,ans:longint;func原创 2017-02-24 19:55:57 · 255 阅读 · 0 评论 -
洛谷 P2449 [SDOI2005]矩形
并查集: 1.判断两两矩形是否有重合部分。 2.有就做并查集,合并成一个集合。 3.for一次判断有多少个集合。 时间复杂度:O(n^2)var f,x,y,p,q:array [0..7001] of longint; i,j,n,ans,k,l:longint;function find(c:longint):longint;begin if f[c]=c the原创 2017-02-21 16:57:12 · 575 阅读 · 0 评论 -
洛谷 P3367【模板】并查集
题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N输出格式: 如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N输入输出样例输入原创 2017-02-12 08:36:29 · 575 阅读 · 0 评论 -
洛谷 P2502 [HAOI2006]旅行
题目描述Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。速度变化太快使得游客们很不舒服,因此从一个景点前往另一个景点的时候,大家都希望选择行使原创 2017-02-14 21:06:40 · 502 阅读 · 0 评论 -
洛谷 P2024 食物链
题目描述动物王国中有三类动物 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 个动物,用原创 2017-02-23 16:25:03 · 456 阅读 · 0 评论 -
VIJOS P1034 家族
描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 格式 输入格式第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关原创 2017-02-15 16:45:48 · 375 阅读 · 0 评论 -
jzoj P1522 无线网络
题目大意: 一个由n台计算机组成的无线网络,每台计算机都能跟与它距离不超过d的任何计算机通讯。地震时,所有计算机都瘫痪了。在修复的过程中,他们需要测试一下某两台计算机能否通讯(如果他们能通过别的正常的计算机进行通讯,也算他们之间可以通讯,即“能否通讯”可以是间接的)。给出操作S, S=“O”,则给出X,表示修复了第X台。 S=“S”,则给出X,Y,表示讯问第X,Y台是否连通。 给出每个计算机原创 2017-05-28 09:27:13 · 583 阅读 · 0 评论 -
SSL P2722 提高组第一式 A
题目大意: 有N个城市,其中K个被敌方军团占领了,N个城市间有N-1条公路相连,破坏其中某条公路的代价是已知的,现在,告诉你K个敌方军团所在的城市,以及所有公路破坏的代价,请你算出花费最少的代价将这K个地方军团互相隔离开,以便第二步逐个击破敌人。2<=n<=100000 2<=k<=n 1<=c<=1000000 城市的编号从0开始计数题解: 因为我们要找一个断掉K个军团的最小销毁路径原创 2017-09-21 17:00:14 · 367 阅读 · 0 评论 -
SSL 模拟赛 总结(2017.10.18)
T1: 这题我们可以发现: 长方形的面积就是 a* i + b * j -a*b 现在i,j是未知的 我们进一步思考: 发现我们连接圆心到矩形A的一点,就可以有勾股求出圆心到矩形A的a边的距离 即 (i/2)^2=r^2- (a/2)^2 而后可以求出i j同理可求 然后我们去枚举a,b即可 时间复杂度:((2r)^2)var r,a,b,i,j:longint;原创 2017-10-28 15:25:58 · 312 阅读 · 0 评论 -
jzoj P2249 蒸发学水
题目大意:机房的位置一共有n 行m 列,一开始每个位置都有一滴学水,TerryHu 决定在每一个时刻选择 一滴学水进行蒸发,直到机房里不再存在学水。 TerryHu 想知道在每个时刻之后,机房里剩下的学水构成了几个联通块。题解:邻接表+并查集: 这题我们直接暴力的去做,很明显只能过60分的点 即暴力的枚举,时间复杂度:O((NM)^2)我们用邻接表去记录不同大小的数的位置 然后我们逆向思维原创 2017-12-15 21:15:09 · 1036 阅读 · 2 评论 -
NOIP 提高组 2010 关押罪犯
题目大意:S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c 的冲突事件。 每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到S城Z市长那里。公务繁忙的Z市长只会去看列原创 2017-12-18 18:36:02 · 339 阅读 · 0 评论 -
Jzoj P6357 小ω的图___贪心+并查集
题目大意:n个点,m条边,问点1走到点n的最大路径and和。n<=105,m<=5∗105,边权<263n<=10^5,m<=5*10^5,边权<2^{63}n<=105,m<=5∗105,边权<263分析:因为and其实是二进制下的逐位运算,所以我们可以贪心从二进制的高位开始枚举,利用并查集判断这一位是否能被加入答案中,这样显然...原创 2019-09-18 16:47:10 · 174 阅读 · 0 评论