并查集
Hoyoak
一位蒟蒻
展开
-
OI学习笔记之数据结构——带权并查集
带权并查集是一种并查集的操作,其功能与基础并查集相同,支持查询和合并操作。除此之外,带权并查集还维护了子节点与父节点之间的关系,在一个有序的集合中,某个元素到根节点的距离(例:NOI2002银河英雄传说),其操作是除了维护节点关系数组f以外,还维护了多个能表示元素之间关系的数组如value等带权并查集的基本操作1——merge//比如要维护有序队列中某个点离祖宗的距离inline void ...原创 2019-07-28 23:48:20 · 164 阅读 · 0 评论 -
P1196 [NOI2002] 银河英雄传说题解
跳转了解题意这是一道带权并查集的入门题目,权即是关系,这个题的权是该节点距离特征性元素的距离,以及以x为开始的集合的元素个数如不了解带权并查集,建议先学习一下再做AC代码:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<...原创 2019-07-28 19:24:03 · 336 阅读 · 0 评论 -
[JSOI2008] P1197 星球大战题解
点击了解题意显然这是一道并查集判联通块的题目,并查集的作用是合并和查询,题目中要求输出炸毁某个点后连通块的个数,但并查集貌似不支持拆分操作 ,可能是我不会,所以我们可以期初先把所有点先摧毁,看看有多少联通块,然后倒着来做,从摧毁的最后一个点开始修建,看看每修建一个点,能减少多少个联通块,每修建一个点记录一下答案,最后正序输出即可。AC代码#include<cstdio>#inc...原创 2019-07-28 15:25:47 · 152 阅读 · 0 评论 -
洛谷P1551亲戚题解
这是一道并查集的板子题,其中给定族谱对应的是并查集的merge操作,查询x,y是否是亲戚对应的是并查集的查询操作附AC代码#include<cstdio>#include<iostream>using namespace std;int f[5005],n,m,k;int find(int a){ if(f[a]==a) return f[a]; r...原创 2019-07-28 00:20:07 · 266 阅读 · 0 评论 -
洛谷P1111修复公路题解
跳转理解题意这道题是洛谷试炼场并查集板块的第一题,但却是一道最小生成树,至于为什么在并查集的版块里,应该是kruskal算法运用到了并查集判断如果添加某条边是否会产生环,题目中要求如何在最短时间内使图中任意两个点都能互相到达,因为所有道路可以同时开始修复,所以题目就是让我们求最小生成树中最长的那条边。这是一道最小生成树(kruskal)的板子题,同时要注意公路无法修建的情况,即原图不连通不存在最...原创 2019-07-28 00:14:38 · 292 阅读 · 0 评论 -
OI学习笔记之数据结构——基础并查集
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。一,对并查集的认识并查集是树形结构,常常在题目中用来判断两个元素是否属于同一个集合,每个集合都有一个特征性元素称为这个集合的father,如果两个元素的father相同,则说明这两个元素属于同一集合,若这两个元素的father不相同,则说明这两个元素不属于一个集合。并查集就是这样一种支持合并和查询的树...原创 2019-07-27 23:51:53 · 286 阅读 · 0 评论 -
[BOI2003] P1892 团伙题解
依然是扩展域并查集,思路与食物链完全相同,略简单于食物链了解题意抓住要点我朋友的朋友是我的朋友;我敌人的敌人也是我的朋友。迎刃而解AC代码#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#define maxn 1005using n...原创 2019-07-30 20:53:46 · 215 阅读 · 0 评论 -
[NOI2001] P2024 食物链题解
苦涩地写这片题解…,这道题我做了五个小时,原因竟是,我把题干中最重要的一句话当成了废话555。点击跳转了解题意题目背景中写道“动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B吃 C,C 吃 A。”我开始只以为这是一句…无关紧要的话,后来一直30分才发现,动物王国真的只有三种动物。这道题依然是有两种做法带权并查集和扩展域并查集,显然我只会扩展域并查集,我...原创 2019-07-30 20:18:26 · 255 阅读 · 0 评论 -
[NOIP2010] P1525关押罪犯题解
点击跳转了解题意这是一道进阶的并查集的题目,其做法有两种,第一种是带权并查集,新开一个数组维护每个节点和根节点的关系,但由于博主太菜,这个做法研究了一下午也没有搞懂,所以就采用了我认为更好理解一点的扩展域并查集,这道题中要求输出的最大冲突值最小,所以贪心的来做,我们先按冲突值从大到小排一个序,尽量不让冲突值大的事件发生,题目中说共有两个监狱,有m对罪犯之间有冲突,只要这两个罪犯关在了同一间监狱里...原创 2019-07-30 15:26:14 · 156 阅读 · 0 评论 -
OI学习笔记之数据结构——扩展域并查集
扩展域并查集与普通的并查集区别在于扩展域并查集开到x*n用于维护x对关系具体详见P1525关押罪犯题解原创 2019-07-30 15:12:14 · 190 阅读 · 0 评论 -
OI学习笔记之图论最小生成树
最小生成树没有用的话qaq :Ummmm…图论的大部分知识本来早就有学过,只是一直没有写成博文来梳理,但既然上了qbxt DP图论就写一篇来总结下,主要是来听DP的,但…由于太菜的原因,DP听得天花乱坠QWQ一,最小生成树的定义一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 ——百度百科二,最小生成树算法顾...原创 2019-08-10 18:47:26 · 274 阅读 · 0 评论