树形结构——并查集
并查集
Alex_McAvoy
想要成为渔夫的猎手
展开
-
树形结构 —— 并查集
【概述】并查集(Union-Find Set)是一种用于分离集合操作的抽象数据类型,其处理的是集合(set)之间的关系,一般处理的是图的连通分量,当给出两个的元素的一个无序对 (a,b) 时,需要快速合并(union) a 和 b 所在的集合,这期间需要反复查找(find)某元素的集合。当遇到有关物与物之间的关系,且这种关系是可传递的问题时,可以优先尝试用并查集解决。并查集的基本操作:...原创 2018-11-17 13:56:13 · 1651 阅读 · 0 评论 -
树形结构 —— 并查集 —— 并查集的删除操作
对于删除操作,在完美的并查集中(所有节点都直接连接在根节点上),理论上只要把要删除的节点的上级重新指向自己就可以了。但是实际情况中,并查集形成的树的形态都是不可预估的,如果直接将一个节点指向自己可能会将他的下级和他一起删除,这就与最初的想法违背了,所以在一个需要删除的并查集中初始化时就要处理一下:首先可以将每一个点都设立一个虚拟父节点,这样根节点就是我们设立的虚拟节点,类似于将每个节点放到...原创 2018-08-08 21:17:41 · 746 阅读 · 0 评论 -
树形结构 —— 并查集 —— 带权并查集
【概述】定义:带权并查集即是结点存有权值信息的并查集。适用:当两个元素之间的关系可以量化,并且关系可以合并时,可以使用带权并查集来维护元素之间的关系。权值:带权并查集每个元素的权通常描述其与并查集中祖先的关系,这种关系如何合并,路径压缩时就如何压缩。与并查集的区别:带权并查集可以推算集合内点的关系,而一般并查集只能判断属于某个集合。【实现】带权并查集只是在并查集中加入了一个...原创 2018-08-04 20:27:58 · 383 阅读 · 0 评论 -
树形结构 —— 并查集 —— 基本操作
【初始化】并查集在最开始时,所有的元素各自单独构成一个集合。当集合中只有一元素时,这个集合的代表结点即为该元素,即该元素的父亲(father)是其自身。因此并查集的初始化即将每个元素以自己作为自己的根结点。int n;int father[N];void init(){ for(int i=1;i<=n;i++) father[i]=i;}...原创 2018-08-02 21:41:02 · 503 阅读 · 0 评论 -
So Easy(2019 ACM-ICPC 徐州赛区网络赛 B)
Problem DescriptionThere are nn points in an array with index from 1 to n, and there are two operations to those points.1: 1 x marking the point xis not available2:2 x query for the index of t...原创 2019-09-10 20:32:53 · 394 阅读 · 0 评论 -
Junk-Mail Filter(HDU-2473)
Problem DescriptionRecognizing junk mails is a tough task. The method used here consists of two steps:1) Extract the common characteristics from the incoming email.2) Use a filter match...原创 2018-05-22 13:51:52 · 319 阅读 · 0 评论 -
Cube Stacking(POJ-1988)
Problem DescriptionFarmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes labeled 1 through N. They start with N stacks, each containing a single cube. Farmer John ...原创 2018-11-17 15:51:51 · 360 阅读 · 0 评论 -
Rochambeau(POJ-2912)
Problem DescriptionN children are playing Rochambeau (scissors-rock-cloth) game with you. One of them is the judge. The rest children are divided into three groups (it is possible that some group i...原创 2018-11-17 16:31:22 · 657 阅读 · 0 评论 -
Tree(HDU-5060)
Problem DescriptionThere is a tree(the tree is a connected graph which contains n points and n−1 edges),the points are labeled from 1 to n,which edge has a weight from 0 to 1,for every point i∈[1,n...原创 2019-01-14 21:36:27 · 322 阅读 · 0 评论 -
The Suspects(POJ-1611)
Problem DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the...原创 2019-02-20 17:53:58 · 239 阅读 · 0 评论 -
A Bug's Life(HDU-1829)
Problem DescriptionProfessor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opp...原创 2018-05-23 18:47:10 · 368 阅读 · 0 评论 -
Haybale Guessing (POJ-3657)
Problem DescriptionThe cows, who always have an inferiority complex about their intelligence, have a new guessing game to sharpen their brains.A designated 'Hay Cow' hides behind the barn and crea...原创 2018-05-29 20:25:20 · 478 阅读 · 0 评论 -
How Many Answers Are Wrong(HDU-3038)
Problem DescriptionTT and FF are ... friends. Uh... very very good friends -________-bFF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To ...原创 2018-05-23 18:51:31 · 326 阅读 · 0 评论 -
Zjnu Stadium(HDU-3047)
Problem DescriptionIn 12th Zhejiang College Students Games 2007, there was a new stadium built in Zhejiang Normal University. It was a modern stadium which could hold thousands of people. The audie...原创 2018-05-23 18:54:19 · 242 阅读 · 0 评论 -
Dragon Balls(HDU-3635)
Problem DescriptionFive hundred years later, the number of dragon balls will increase unexpectedly, so it's too difficult for Monkey King(WuKong) to gather all of the dragon balls together.His cou...原创 2018-05-23 18:56:13 · 383 阅读 · 0 评论 -
Segment set(HDU-1558)
Problem DescriptionA segment and all segments which are connected with it compose a segment set. The size of a segment set is the number of segments in it. The problem is to find the size of some s...原创 2018-05-23 18:57:36 · 280 阅读 · 0 评论 -
Is It A Tree?(HDU-1325)
Problem DescriptionA tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the followi...原创 2018-05-23 19:00:46 · 433 阅读 · 2 评论 -
食物链(POJ-1182)
Problem 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个...原创 2018-11-17 16:08:04 · 848 阅读 · 0 评论 -
連結 / Connectivity(AtCoder-2159)
Problem DescriptionThere are N cities. There are also K roads and L railways, extending between the cities. The i-th road bidirectionally connects the pi-th and qi-th cities, and the i-th railway b...原创 2019-05-23 17:17:56 · 389 阅读 · 0 评论 -
畅通工程(HDU-1232)
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道...原创 2018-05-18 23:02:19 · 1204 阅读 · 0 评论 -
打击犯罪(信息学奥赛一本通-T1386)
【题目描述】某个地区有n(n≤1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个庞大的犯罪集团,犯罪集团的危险程度由集团内的犯罪团伙数量唯一确定,而与单个犯罪团伙的危险程度无关(该犯罪集团的危险程度为n)。现在当地警方希望花尽量少的时间(即打击掉尽量少的团伙),使得庞大的...原创 2018-06-26 23:40:33 · 2412 阅读 · 0 评论 -
家庭问题(信息学奥赛一本通-T1362)
【题目描述】有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关.系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5)此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家庭,{6}单独为一个家庭,第一个...原创 2019-10-11 16:38:56 · 5389 阅读 · 1 评论 -
格子游戏(信息学奥赛一本通-T1347)
【题目描述】Alice和Bob玩了一个古老的游戏:首先画一个n × n的点阵(下图n = 3)接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了(n ≤ 200),他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?【输入】输...原创 2018-06-26 23:49:06 · 2172 阅读 · 0 评论 -
团伙(信息学奥赛一本通-T1385)
【题目描述】在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?【输入】第1行为n和m,1<n<1000,1≤m≤100 000;以下m行...原创 2018-06-26 23:47:46 · 3200 阅读 · 0 评论 -
搭配购买(信息学奥赛一本通-T1387)
【题目描述】Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有n朵云,云朵被编号为1,2,…...,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。【输入】第1行n,m,w,表示n朵云,m个搭配,Joe有w的钱。第2~n+1行,每行ci,di表示i朵云的价钱和...原创 2018-06-29 17:56:40 · 1937 阅读 · 0 评论 -
亲戚(信息学奥赛一本通-T1346)
【题目描述】或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。从这...原创 2018-06-26 23:50:45 · 2774 阅读 · 0 评论 -
食物链(信息学奥赛一本通-T1390)
【题目描述】动物王国中有三类动物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个动物,用上述两种说法,一句...原创 2018-06-29 17:52:04 · 1423 阅读 · 0 评论 -
亲戚(信息学奥赛一本通-T1389)
【题目描述】若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的某个人所在家族的人数。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。【输入】第一行:三个整数n,(n≤100,000,m≤200,000),分别表示有n个人,m个信息。以下m行:信息包含两种形...原创 2018-06-29 17:54:15 · 2320 阅读 · 0 评论 -
家谱(信息学奥赛一本通-T1388)
【题目描述】现代的人对于本家族血统越来越感兴趣,现在给出充足的父子关系,请你编写程序找到某个人的最早的祖先。【输入】由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系由二行组成,用#name的形式描写一组父子关系中的父亲的名字,用+name的形式描写一组父子关系中的儿子的名字;接下来用?name的形式表示要求该人的最早的祖先;最后用单独的一个$表示文件结束。规定每个人的名...原创 2018-06-29 17:55:32 · 1618 阅读 · 1 评论