
ACM_并查集
文章平均质量分 77
Ch_zaqdt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 1213 How Many Tables(并查集讲解)
这是我写的第一道并查集的题,也应该是一道最简单的入门题了,所以就以这道题说下并查集,其实就是找关系,比如说这道题的题意就是有n个人聚餐,然后他们不一定都互相认识,如果a认识b,b认识c,那么就让他们仨坐一桌,再如果c认识d,d认识e,那么就让这三个人另外坐一桌,所以就是有关系的就坐一桌,然后问需要多少张桌子(忽略每张桌子能坐多少人)。 那么并查集就分为并和查两个过程, ...原创 2018-02-22 16:19:37 · 707 阅读 · 1 评论 -
HDU 1272 小希的迷宫(并查集判断有无成环)
这是一道判断有没有成环的并查集的题,就是每两个点要有唯一的路可到达。不太懂并查集的可以看一下这篇博客传送门。 说一下这道题的思路,首先要判断有没有成环的话,要先想清楚什么时候会成环。比如以这个图为例,我们输入1和2,1和3,2和4,3和4,当输入完2和4的时候现在pre数组里有pre[2]=1,pre[3]=1,pre[4]=1,当再输入3和4的时候,会发现3和4的根节...原创 2018-02-22 18:15:14 · 423 阅读 · 0 评论 -
POJ 1308 Is It A Tree?
题意是判断这是不是一棵树,条件就是不能有环,而且只能有一个根节点,和小希的迷宫哪道题差不多,可以看下判断有没有环的详解传送门,这道题呢需要加一个改动的地方就是因为不知道这个树的大小,可能不是从1开始的,也不知道是从多少结束的,所以刚开始要把最大值和最小值记录下来。AC代码:#include <iostream>#include <cstdio>using ...原创 2018-02-22 18:38:27 · 232 阅读 · 0 评论 -
POJ 1611 The Suspects(并查集)
题意是爆发了SARS病毒,现在有许多个小组,只要小组里有一个人感染了病毒,那么这个小组都会有感染的嫌疑,所以让求的就是有感染嫌疑的人数,先输入n,m,表示有n个人,m个小组,然后输入每个小组ans个人,然后输入那ans个人的编号。所以我们可以先输入ans,再输入第一个人a,然后再循环输入ans-1次b,让a和b合并就好了。AC代码:#include <iostream>...原创 2018-02-23 15:25:14 · 223 阅读 · 0 评论 -
POJ 2236 Wireless Network(并查集裸题)
题意是发生了地震把电脑都震坏了,然后要修复这些电脑,先输入n,d,表示有编号为1-n的这么多电脑,d表示两台电脑的距离不大于d时可以连接,然后输入n行x,y,表示编号为1-n的电脑的坐标,然后输入'O'或'S',当输入'O'以后再输入m,表示编号为m的电脑修好了,输入'S'后在输入a,b,表示询问a和b能否成功连接,能的话输出SUCCESS,否则FAIL。 思路是当输入为...原创 2018-02-23 22:47:18 · 229 阅读 · 0 评论 -
HDU 4496 D-City(反向并查集)
题意是有n个点,m条边,刚开始这些边都是连着的,然后按顺序逐一破坏这些边,然后让你输出每破坏一次图中还剩几个集合,刚开始肯定是有一个集合的,最后都破坏完了就是n个集合了。 讲一下思路,我们可以反向思考,从正面破坏,可以从倒着连接实现,开一个ans数组标记每次连接两个点后的集合数目,比如刚开始有n个点,就让ans[i] = n,然后每次把两个集合连起来的时候就让n--,然后...原创 2018-02-23 23:21:21 · 293 阅读 · 0 评论 -
NYOJ 1022 合纵连横(并查集删除)
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1022 这道题主要是考察并查集的合并和删除,合并很简单,主要是第一次遇到删除就不知道该怎么删除了,然后看了别人的博客发现有一个叫虚根的东西,其实就是另外开一个数组来记录父节点,不懂得可以看下这篇博客传送门,我觉得讲的很详细。AC代码:#include <...原创 2018-05-09 15:34:28 · 230 阅读 · 0 评论 -
第十四届华中科技大学程序设计竞赛 C.Professional Manager(并查集操作)
题目链接:https://www.nowcoder.com/acm/contest/106/C 题意是有一堆树,当你输入1的时候,将a,b森林合并起来,输入2的时候,将a这棵树从当前森林中分离出来,输入3的时候,查询a所在的森林里有多少棵树,输入为4的时候,判断a和b是否属于同一片森林。因为涉及到了并查集的删除操作,所以需要另外开辟辅助数组,然后需要注意的是,当查询一片森林...原创 2018-05-09 16:18:47 · 281 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2) F. Asya And Kittens(并查集+邻接表)
题目链接:https://codeforces.com/contest/1131/problem/F 题意是有n个数,有n-1种关系,最终会构成一颗树,从根节点按顺序输出这n个点,其实看图就理解的差不多了。 思路就是按题意将所要连的两个链表merge一下就好了,不太好描述,看代码画画图就理解了。AC代码:#include <bits/stdc+...原创 2019-02-23 22:44:50 · 379 阅读 · 0 评论