![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
v5zsq
新的一天,新的不会
展开
-
POJ 2524 Ubiquitous Religions(并查集)
Description 已知有n个大学生,其中有m对宗教信仰相同的学生,请你估算这n个学生中最多有多少种宗教信仰 Input 第一行为两个整数n和m表示大学生人数和有相同信仰的学生对数,之后m行每行两个整数a和b表示学生a和学生b有相同的宗教信仰(0 < n <= 50000,0<=m<=n*(n-1)/2) Output 输出这n名学生最多有多少种宗教信仰 Sample Input原创 2015-12-29 18:16:53 · 476 阅读 · 0 评论 -
HDU 6039 Gear Up(并查集+线段树)
Description 有n个齿轮,每个齿轮有一个半径rad[i],齿轮间有两种关系:共轴(角速度相同)或共边(线速度相同),保持两个齿轮之间不会同时出现这两种关系,且任意两个齿轮之间只有一条路径,有两种操作: 1 x y:把x齿轮的半径变成y 2 x y:给x齿轮角速度y,求所有齿轮中最大的角速度的自然对数值 Input 多组用例,每组用例首先输入三个整数n,m,q分别表示齿轮数,齿轮之原创 2017-08-06 13:51:58 · 826 阅读 · 0 评论 -
HDU 6109 数据分割(并查集+set+在线倍增法)
Description小ww来到百度之星的赛场上,准备开始实现一个程序自动分析系统。这个程序接受一些形如xi=xjxi=xj或xi≠xjxi≠xj的相等/不等约束条件作为输入,判定是否可以通过给每个ww赋适当的值,来满足这些条件。输入包含多组数据。 然而粗心的小ww不幸地把每组数据之间的分隔符删掉了。 他只知道每组数据都是不可满足的,且若把每组数据的最后一个约束条件去掉,则该组数据是可满足的。请原创 2017-09-28 16:35:20 · 500 阅读 · 0 评论 -
CodeForces 150 B.Quantity of Strings(组合数学+并查集)
Description要求用mm种字母构造一个长度为nn的字符串,使得该字符串的所有长度为kk的子串均为回文串,问方案数Input三个整数n,m,k(1≤n,m,k≤2000)n,m,k(1\le n,m,k\le 2000)Output输出满足条件的字符串数量,结果模109+710^9+7Sample Input5 2 4Sample Output2Solution对于每一个位置,考虑其在一个长度原创 2017-12-31 21:28:50 · 359 阅读 · 0 评论 -
CodeForces 74 C.Chessboard Billiard(并查集)
Description给出一个n∗mn*m的棋盘, 可以在格子里放小球,但是需要保证任意两个小球不可达,一个小球每次可以选择东南,东北,西南,西北四个方向中的一个运动,遇到边界就反弹,遇到角就原路返回,如果若干次反弹后可以到达另一个小球的位置则称这两个小球互相可达。问最多可以放多少小球Input两个整数n,mn,m表示棋盘规模(2≤n,m≤106)(2\le n,m\le 10^6)Output输出原创 2017-12-30 09:55:18 · 617 阅读 · 0 评论 -
CodeForces 91 C.Ski Base(欧拉回路+并查集)
Description一张图,依次将mm条边加入,问迹的数量,迹为经过至少一条边的回路,且经过的每条边只经过一次Input第一行两个整数n,mn,m表示点数和边数,之后mm行每行输入两个整数u,vu,v表示一条边(2≤n≤105,1≤m≤105)(2\le n\le 10^5,1\le m\le 10^5)Output每加一条边就输出当前图中迹的数量Sample Input3 4 1 3 2 3原创 2017-12-30 11:16:26 · 438 阅读 · 0 评论 -
CodeForces 859 E.Desk Disorder(组合数学+并查集)
Descriptionnn个人2n2n个座位,给出每个人当前的座位编号和他想去的座位编号,一个人要么待在自己位置不动要么去自己想去的位置,但是一个位置只能坐一个人,问可能的座位安排方案Input第一行一个整数nn表示人数,之后nn行第ii行输入两个整数ai,bia_i,b_i表示第ii个人现在在第aia_i个座位,他想去第bib_i个座位(1≤n≤105,ai(1\le n\le 10原创 2018-01-15 12:25:31 · 422 阅读 · 0 评论 -
HDU 6200 mustedge mustedge mustedge(树链剖分LCA+并查集+BIT)
Description给出一个nnn个点mmm条边的无向图,无重边无自环两种操作1 u v:1 u v:1\ u\ v:在u,vu,vu,v之间加一条边2 u v:2 u v:2\ u\ v:查询uuu到vvv的路径上割边数量Input第一行输入一整数TTT表示用例组数,每组用例首先输入两个整数n,...原创 2018-02-14 16:19:20 · 276 阅读 · 0 评论 -
GYM 101550 A.Artwork(并查集)
Description给出一个n×mn×mn\times m的网格,初始状态所有格子均为白色,qqq次操作,每次操作会把该网格的几个格子涂黑,问每次操作后白色格子的连通分支数,两个白块相邻当且仅当它们共边Input第一行三个整数n,m,qn,m,qn,m,q表示网格行列数和操作数,之后qqq行每行输入四个整数x1,y1,x2,y2x1,y1,x2,y2x_1,y_1,x_2,y_2,表...原创 2018-02-19 15:18:09 · 541 阅读 · 0 评论 -
HDU 5883 The Best Path(欧拉回路+并查集)
Description给一个nnn个点mmm条边的无向图,每个点有点权,问是否存在欧拉回路,如果存在则输出所有合法欧拉路径中所经点权值异或和最大的Input第一行一整数TTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和边数 ,之后输入nnn个整数a1,...,ana1,...,ana_1,...,a_n表示这nnn个点的点权,之后mmm行每行输入两个整数u,vu,...原创 2018-04-04 19:52:35 · 185 阅读 · 0 评论 -
CodeForces 87 D.Beautiful Road(并查集)
Description给出一棵nnn个点的树,每条边的有边权,任两点之前路径上边权最大值的边魅力值加一,问最后魅力值最大的边的魅力值以及这些边的编号Input第一行一整数nnn表示节点数,之后以此输入n−1n−1n-1条树边的两端点和边权www(2≤n≤105,1≤w≤109)(2≤n≤105,1≤w≤109)(2\le n\le 10^5,1\le w\le 10^9)Out...原创 2018-07-16 12:53:34 · 346 阅读 · 0 评论 -
CodeForces 95 E. Lucky Country(并查集+多重背包)
Description定义全部由4,74,74,7组成的数组为幸运数字,给出一张nnn个点mmm条边的无向图,要求增加最少的边使得该图中有一个点数为幸运数字的连通块Input第一行两个整数n,mn,mn,m表示点数和边数,之后mmm行每行输入一条无向边(1≤n,m≤105)(1≤n,m≤105)(1\le n,m\le 10^5)Output输出最少需要加边数,如果无解则输出−...原创 2018-07-16 13:29:17 · 416 阅读 · 0 评论 -
CodeForces 10 C.Lucky Tree(并查集)
Description定义全部由4,74,74,7组成的数字为幸运数字,给出一棵nnn个节点的树,每条边的有边权,边权为幸运数字的边称为幸运边,求三元组(i,j,k)(i,j,k)(i,j,k)的个数使得iii到j,kj,kj,k路径上都至少有一条幸运边Input第一行一整数nnn表示节点数,之后n−1n−1n-1每行输入三个整数u,v,wu,v,wu,v,w表示u,vu,vu,v之间...原创 2018-07-16 13:53:34 · 480 阅读 · 0 评论 -
HDU 6350 Always Online(最大流+并查集)
Description给出一个nnn个点mmm条边的无向图,任意两点之间至多两条路径,以flow(s,t)flow(s,t)flow(s,t)表示s,ts,ts,t两点之间的最大流,求∑1≤s<t≤ns⊕t⊕flow(s,t)∑1≤s<t≤ns⊕t⊕flow(s,t)\sum\limits_{1\le sTTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和边数,...原创 2018-09-06 08:18:56 · 645 阅读 · 0 评论 -
HDU 6392 Reverse Game(线段树+并查集)
Description给出一n×nn×nn\times n的010101矩阵,每行每列连通,且每行第nnn个元素和第111个元素也连通,两种操作,第一种是反转一列,第二种是反转一个元素,每次操作过后查询整个矩阵中111连通块数量和000连通块数量Input第一行一整数TTT表示用例组数,每组用例首先输入一整数nnn,之后输入一个n×nn×nn\times n的010101矩阵,之后输入...原创 2018-09-10 13:24:01 · 296 阅读 · 0 评论 -
HDU 6393 Traffic Network in Numazu(树形DP+在线倍增LCA+BIT+并查集)
Description给出一个nnn个点nnn条边的连通无向图,边有边权,qqq次操作,操作分两种0 X Y0 X Y0\ X\ Y:将第XXX条边边权修改为YYY1 X Y1 X Y1\ X\ Y:查询X,YX,YX,Y两点间的最短路Input第一行一整数TTT表示用例组数,每组用例首先输入两个整...原创 2018-09-10 13:24:56 · 248 阅读 · 0 评论 -
Newcoder 142 J.Hash Function(并查集)
Description线性处理冲突的hashhashhash表,hashhashhash函数为h(x)=x%nh(x)=x\%nh(x)=x%n,hashhashhash表长度为nnn,给出插入若干元素后的hashhashhash表,要求输出一种合法的插入顺序Input第一行一整数TTT表示用例组数,每组用例首先输入一整数nnn表示hashhashhash表长度,之后输入插入若干元素后的ha...原创 2018-09-17 20:41:10 · 145 阅读 · 0 评论 -
Newcoder 84 C.任意点(并查集)
Description平面上有若干个点,从每个点出发,你可以往东南西北任意方向走,直到碰到另一个点,然后才可以改变方向。请问至少需要加多少个点,使得点对之间互相可以到达。Input第一行一个整数nnn表示点数第二行nnn行,每行两个整数xi,yix_i, y_ixi,yi表示坐标yyy轴正方向为北,xxx轴正方形为东。(1≤n≤100,1≤xi,yi≤1000(1\le n\le...原创 2018-10-18 21:02:03 · 247 阅读 · 0 评论 -
CodeForces 217 A.Ice Skating(并查集)
Description 给出n个点的横纵坐标,两个点互通当且仅当两个点有相同的横坐标或纵坐标,问最少需要加几个点才能使得所有点都两两互通 Input 第一行一个整数n表示点数,之后n行每行两个整数x[i]和y[i]表示第i个点的横纵坐标(1<=n<=100,1<=x[i],y[i]<=1000) Output 输出需要加的最少点数 Sample Input 2 2 1 1 2 S原创 2017-07-18 00:00:05 · 775 阅读 · 0 评论 -
GYM 101173 H.Hangar Hurdles(并查集+bfs+dfs)
Description 一个n*n的地图,#不能走,.可以走,q次查询,每次问从起点到终点最大能容多大的正方形(以起点为中心)过去,期间这个正方形不能碰到#也不能越界,如果不可达则输出0 Input 第一行一整数n表示地图规模,之后一个n*n矩阵表示该地图,然后输入查询数q,最后q行每行两个整数sx,sy,ex,ey表示起点和终点的横纵坐标(2<=n<=1000,1<=q<=3e5)原创 2017-06-05 09:16:43 · 815 阅读 · 2 评论 -
CodeForces 731 C.Socks(贪心+并查集)
Description m天n只袜子,袜子有k种颜色,每次操作可以将任一只袜子染成这k种颜色的任一种,要求第i天只能穿第li只和第ri只袜子,问最少操作多少次可以使得每一天穿的袜子颜色都相同 Input 第一行三个整数n,m,k分别表示袜子数,天数和颜色数,之后n个整数c[i]表示第i只袜子的颜色,最后m行每天两个整数li和ri表示第i天要穿的两只袜子(2Output 输出最少操作数使得原创 2017-04-29 11:12:12 · 617 阅读 · 0 评论 -
POJ 1703 Find them, Catch them(并查集)
Description 在这个城市里有两个黑帮团伙,现在给出n个人,每个人都属于这两个帮派中的一个,m次操作,操作分两种: 1.D x y:x于y不在一个团伙里 2.A x y:查询x与y的关系,即是否在同一团伙或者不确定 Input 第一行一个整数T表示用例组数,每组用例第一行为两个整数n和m分别表示人数和操作数,之后m行每行表示一种操作(1<=n<=100000) Output 对原创 2015-12-29 18:11:13 · 531 阅读 · 0 评论 -
POJ 1988 Cube Stacking(并查集)
Description 有n个从1到n(1<=n<=30000)编号的箱子,将每个箱子当做一个栈,对这些箱子进行p次操作 (1<=p<=100000),操作分两种: 1.M x y:将编号为x的箱子所在的栈放在编号为y的箱子所在栈的栈顶 2.C x:询问编号为x的所表示的栈中在x号箱子下面的箱子数目 Input 第一行为一个整数p表示操作数,之后p行每行为一次操作 Output 对于每原创 2015-12-29 17:58:49 · 476 阅读 · 0 评论 -
POJ 1308 Is It A Tree?(并查集)
Description 给出一些几点的连接情况,判断这些节点能否组成一棵树 Input 多组用例,每组用例每次输入两个整数a和b表示有一条a指向b的边,以0 0结束一组用例的输入,以-1 -1结束所有输入 Output 对于每组用例,判断这些节点能否组成一棵树 Sample Input 6 8 5 3 5 2 6 4 5 6 0 0 8 1 7 3 6 2 8 9原创 2015-12-29 17:47:35 · 457 阅读 · 0 评论 -
CodeForces 603 B. Moodular Arithmetic(数论+并查集)
Description 给出一个整数k以及一个奇素数p,问满足f(kx%p)=k*f(x)%p的映射f:{0,1,…,p-1}->{0,1,…,p-1}的数量(结果模1e9+7) Input 两个整数k和p(3 ≤ p ≤ 1 000 000, 0 ≤ k ≤ p - 1) Output 输出满足条件的映射f的个数 Sample Input 3 2 Sample Output 3原创 2015-12-07 20:38:19 · 681 阅读 · 0 评论 -
POJ 1838 Banana(并查集)
Description 一个点用坐标(x,y)表示,如果两个点在水平方向或垂直方向上相邻,则两个点属于一个区域,即点1(x1,y1),点2(x2,y2)相邻当且仅当x1==x2,|y1-y2|=1或者|x1-x2|=1,y1=y2。给定一些点,相邻的点构成一个区域,求出k个区域所能拥有的最大点数(k不大于区域数) Input 第一行两个整数n和k分别代表点数和区域数,之后n行为n个点的坐标原创 2015-07-07 10:53:08 · 613 阅读 · 0 评论 -
POJ 1611 The Suspects(并查集)
Description 有n名学生(编号0~n-1)分成了m组,其中学生0感染了病毒,这种病毒极易传播,两人只要接触就会传播,一人感染全组感染,问共有多少名学生会感染这种病毒? Input 多组用例,每组用例第一行为两个整数n和m表示学生人数和组数,之后m行每行首先输入该组学生人数num,然后输入num个整数表示该组学生的编号,以 0 0结束输入 Output 对于每组用例,输出被感染学生原创 2016-03-01 17:02:09 · 424 阅读 · 0 评论 -
HDU 1213 How Many Tables(并查集)
Description 小明过生日邀请了n为朋友来做客,这些朋友中m对相互认识,他们可以做同一张桌子,但如果一个人和一张桌子上坐着的所有人都不认识,那么他不会坐这张桌子,问小明至少需要准备多少张桌子 Input 第一行一个整数T表示用例组数,每组用例第一行为两个整数n和m分别表示人数和相互认识的朋友对数,之后m行每行两个整数a和b表示a和b相互认识(1<=n,m<=1000) Output原创 2015-12-29 18:22:50 · 381 阅读 · 0 评论 -
POJ 1182 食物链(并查集)
Description 动物王国中有三类动物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个动物,用原创 2015-08-23 15:02:45 · 768 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong(并查集)
Description A有一个由n个数组成的序列,B问A一系列问题A回答,每次B询问区间[a,b]中所有数之和,A的可能说真话也可能说假话,此处认为如果未出现冲突则A说的是真话,共m次询问,问A说假话的次数 Input 第一行为两个整数n和m分别表示序列长度和询问次数,之后m行每行三个整数a,b,s表示[a,b]中所有数之和为s(1<=n<=200000,1<=m<=40000,1<=a<=原创 2016-02-25 18:44:00 · 432 阅读 · 0 评论 -
HDU 5606 tree(并查集)
Description 有一个树(n个点, n-1条边的联通图),点标号从1~n,树的边权是0或1.求离每个点最近的点个数(包括自己) Input 第一行一个数字T,表示T组数据. 对于每组数据,第一行是一个n,表示点个数,接下来n-1行,每行三个整数u,v,w表示一条边连接的两个点和边权. T=50,1≤n≤100000,0≤w≤1. Output 对于每组数据,输出答案,考虑到输出原创 2016-08-04 09:06:27 · 377 阅读 · 0 评论 -
HDU 5441 Travel(并查集)
Description 给出一张n个点m条边的无向图,每条边有边权,给出q次查询,每次查询给出一个x,如果从a点到b点路径上所有边的边权都不大于x那么(a,b)合法,问这样的合法对有多少 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,m,q分别表示点数,边数和查询数,之后m行每行三个整数u,v,w表示u和v之间有一条边权为w的边,最后q行每行一个整数x表示一次查询(T<=原创 2016-08-25 09:41:31 · 456 阅读 · 0 评论 -
HDU 5631 Rikka with Graph(并查集)
Description n个点,n+1条边,问删去一些边后仍是连通图的方案数 Input 第一行一整数T表示用例组数,每组用例首先输入一正整数n表示点数,之后n+1行每行两整数u,v表示u和v之间有一条边(T<=30,n<=100) Output 对于每组用例,输出删去一些边后仍是连通图的方案数 Sample Input 1 3 1 2 2 3 3 1 1 3 Sample原创 2016-09-19 22:27:59 · 379 阅读 · 0 评论 -
GYM 101128 B.Black Vienna(并查集)
Description 有A~Z这26张牌,现在从中抽出三张并把剩余23张分给选手1和2,现在有n次查询,每次询问一个选手是否有某两张牌,和选手的回答,回答是说自己有这两张牌中的几张,问拿出的三张牌有多少种方案能够满足这n个条件 Input 第一行一整数n表示查询数,每组查询输入两个字符表示要查询的两张牌,以及要查询的选手编号(1or2),以及选手的回答(0,1,2)表示这两张牌手里有多少张(原创 2017-03-11 17:12:47 · 724 阅读 · 0 评论 -
GYM 100971 A.Treasure Island(dfs+并查集)
Description 给出一张n*m的地图,点表示空地,井号表示墙,问号不确定,问是否可以把问号变成点或井号使得整张图只有一个连通块 Input 第一行两个整数n和m表示地图规模,之后一个n*m矩形表示该地图(1<=n,m<=50) Output 如果存在唯一解则输出该唯一解,如果多解输出Ambiguous,如果无解输出Impossible Sample Input Sample原创 2017-03-22 16:07:11 · 749 阅读 · 0 评论 -
CodeForces 566 D.Restructuring Company(并查集)
Description n个单点集,两种操作: 1 x y:合并x和y所在集合 2 x y:合并x,x+1,…,y-1,y所在集合 3 x y:查询x和y是否在同一集合 Input 第一行两个整数n和q表示初始集合数和操作数,之后q行每行一个操作(1<=n<=2e5,1<=q<=5e5) Output 对于每次查询操作,如果x和y属于同一集合则输出YES,否则输出NO Sample原创 2017-04-11 19:30:35 · 857 阅读 · 0 评论 -
SPOJ 21083 LEXSTR - Lexicographically Smallest(并查集)
Description 给出一个字符串和若干可以随意互换的位置对,求经过适当互换能得到的字典序最小的串 Input 第一行一整数T表示用例组数,每组用例首先输入一个串长不超过1e5的字符串,之后输入一整数m表示可以互换的位置对数量,之后m行每行输入两个整数x和y表示x位置和y位置的字符可以随意换(1<=T<=10,1<=m<=1e5) Output 输出最小字典序的字符串 Sample原创 2017-04-12 16:28:36 · 631 阅读 · 0 评论 -
Newcoder 39 D.加边的无向图(并查集)
Description给你一个 nnn 个点,mmm 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~Input第一行两个正整数 nnn 和mmm 。接下来的mmm行中,每行两个正整数 i、ji 、 ji、j ,表示点iii与点jjj间有一条无向道路。(n,m≤105)(n,m\le 10^5)(n,m≤105)output输出一个整数,表示答案Sample ...原创 2018-10-23 09:18:24 · 312 阅读 · 0 评论