![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
愤怒的愣头青
这个作者很懒,什么都没留下…
展开
-
星球联盟
题目描述 在遥远的S星系中一共有N个星球,编号为1…N。其中的一些星球决定组成联盟,以方便相互间的交流。但是,组成联盟的首要条件就是交通条件。初始时,在这N个星球间有M条太空隧道。每条太空隧道连接两个星球,使得它们能够相互到达。若两个星球属于同一个联盟,则必须存在一条环形线路经过这两个星球,即两个星球间存在两条没有公共隧道的路径。为了壮大联盟的队伍,这些星球将建设P条新的太空隧道。这P条新隧道将按原创 2016-11-16 10:56:35 · 1173 阅读 · 0 评论 -
【bzoj4195】[Noi2015]程序自动分析
Description在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然原创 2017-05-26 18:31:05 · 277 阅读 · 0 评论 -
【bzoj1050】[HAOI2006]旅行comf
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T ,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出 这个比值,如果需要,表示成一个既约分数。 备注: 两个顶点之间可能有多条路径。 Input 第一行包含两个正整数,N和原创 2017-05-21 20:43:20 · 299 阅读 · 0 评论 -
【51Nod1753】相似子串
两个字符串相似定义为: 1.两个字符串长度相等 2.两个字符串对应位置上有且仅有至多一个位置所对应的字符不相同 给定一个字符串,每次询问两个子串在给定的规则下是否相似。给定的规则指每次给出一些等价关系,如‘a’=’b’,‘b’=’c’等,注意这里的等价关系具有传递性,即若‘a’=’b’,‘b’=’c’,则‘a’=’c’。 Input 第一行一个字符串s(1<=|s|<=300000) 第原创 2017-09-24 20:33:37 · 383 阅读 · 0 评论 -
【bzoj3673】可持久化并查集 by zky
Descriptionn个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出00#include<cstdio> #include<cstring> #include<iostream> using namespace std; int n,m,sz; int root[2000原创 2017-05-27 21:17:30 · 341 阅读 · 0 评论 -
【51Nod1573】美丽的集合
多重集合是数学中的一个概念,是集合概念的推广。在一个集合中,相同的元素只能出现一次,因此只能显示出有或无的属性。在多重集之中,同一个元素可以出现多次。 我们现在有n个多重集合,第i个集合最开始都有一个元素ai(1≤i≤n)。 一个拥有n个元素的多重集合显然会有2^n个子集。 一个多重集合的价值为子集中不同的和的个数。 例如一个多重集合{1,2},那么会存在有4个不同的和{0,1,2,3}。其原创 2017-10-07 18:43:01 · 351 阅读 · 0 评论 -
【51Nod1525】重组公司
有n个人在公司里面工作。员工从1到n编号。每一个人属于一个部门。刚开始每一个人在自己的部门负责自己的项目,这样的话公司里面就有n个部门。 然而,公司内部出现了危机,需要合并一些部门,以提高工作效率。team(person) 表示person这个人所在的部门。有以下两种合并操作: 1. 合并 team(x) 和 team(y)。 x和 y (1≤x,y≤n)是员工编号。如果team(x) 和原创 2017-10-07 19:21:21 · 245 阅读 · 0 评论 -
【bzoj1370】[Baltic2003]Gang团伙
Description在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1、 我朋友的朋友是我的朋友; 2、 我敌人的敌人是我的朋友; 所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙? Input第1行为n和m,N小于1000,M小于5000; 以下m行,每行为p x y,p的值原创 2017-11-07 09:00:57 · 249 阅读 · 0 评论 -
【bzoj2054】疯狂的馒头
Description Input第一行四个正整数N,M,p,qOutput一共输出N行,第i行表示第i个馒头的最终颜色(如果最终颜色是白色就输出0)。Sample Input4 3 2 4 Sample Output2230 HINT 题解 倒着做,用并查集维护已经被覆盖的区间,或者链表也可以。代码#include<bits/stdc++.h> typedef long long ll;原创 2017-11-02 12:22:38 · 243 阅读 · 0 评论