![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Disjoint set
文章平均质量分 63
wust_tanyao
这个作者很懒,什么都没留下…
展开
-
hdu 1856 More is better --- 并查集
并查集 求最大的集合里元素个数貌似方法有很多。。#include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int r[10000005],vis[原创 2014-03-04 18:19:23 · 863 阅读 · 0 评论 -
poj 1611 The Suspects --- 并查集
共n个人,编号0~m-1,分为m组,组内人有关系,求与0有关系的人的个数#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int原创 2014-02-28 17:54:44 · 887 阅读 · 0 评论 -
hdu 1272 小希的迷宫
并查集 判断是否有环、未给出点数判断集合数是否大于1就是判断是否是最小生成树吧判断有环:若输入两点的根相同则有环判断所有点是否都在同一集合内:此题有点不严谨吧,还是看了别人代码才知道,给的点是一个区间内的所有点。合并过程中把出现的点都标记,把最小和最大的找到,枚举,看有几个根,有几个根就有几个集合。#include #include #inc原创 2014-03-04 19:32:00 · 920 阅读 · 0 评论 -
hdu1811 Rank of Tetris --- 拓扑排序
相等的用并查集处理剩下的部分就拓扑排序 这里是用队列写的若所有点都有正确的大小关系顺序 就合法 否则conflict其次一个点对应多个下一级 就不确定#include #include #include #include #include #include #include #include #include #define inf 0x3原创 2014-03-17 20:37:47 · 846 阅读 · 0 评论 -
wust April Chanllenge 2014 D题 poj2236 Wireless Network
n台电脑,在其正常时能与开始,所有电脑都坏掉了,O a表示修好了a电脑,S a b查询a b电脑是否可通信每次修好一台电脑,就枚举一遍所有已经修好的电脑,判断他们是否在d范围内,是的话就并查集合并#include #include #include #include #include #include #include #include #include #d原创 2014-04-03 23:12:37 · 1001 阅读 · 0 评论 -
hdu2818 Building Block
简单的种类并查集每次用并查集模板合并时 因为小的合并到大的上面可以减小树的高度 所以每次都是判断大小再合并的但是这种题目 为啥这样就错列?只能从一堆合并到另一堆此题中,vis[a]存a为根的集合元素个数,num[a]存a所在的集合元素个数merge和root的过程和树的形状、包括递归顺序无关的吧?#include #include #include #in原创 2014-03-11 21:51:50 · 1014 阅读 · 2 评论 -
hdu3172 Virtual Friends
水题,边合并边输出就行了,所以可以在merge里面输出比较方便#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;map f原创 2014-03-10 18:02:49 · 893 阅读 · 0 评论 -
hdu1598 find the most comfortable road
找一条路,使路径中结点权最小和最大的差最小。按权值从小到大排序,枚举起点终点,并查集判断要求的起点终点是否连通。哎 好多麻烦题 就暴力暴力着思路就出来了#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#原创 2014-03-12 21:38:02 · 845 阅读 · 2 评论 -
hdu2473 Junk-Mail Filter 设虚父结点删除节点
并查集之删除节点。。。真的不想再天天做并查集了。。这题目真是做不完。。这一道一来又不会。。。删除节点呢,具体的过程比较复杂,为了简单起见,我们开始给节点初始化时,就给每个节点一个虚父节点合并、找根的过程都不影响而删除的时候,就把要删除的节点指向无意义的点这样消失的不知不觉 也不会影响跟自己有关系的点。。。#include #includ原创 2014-03-12 21:34:26 · 905 阅读 · 0 评论 -
poj 1182 食物链
并!查!集!好!难!啊!看了两天才看懂我对自己的智商完全没自信了╭(╯^╰)╮所谓的种类并查集。。一个集合代表一类,求解各类之间的关系问题。对于本题,首先,集合里的每个点我们都记录它与它这个集合(或者称为子树)的根结点的相对关系rank。0表示它与根结点为同类,1表示它吃根结点,2表示它被根结点吃。0,1,2也是距离根节点的具体,rank这个树最多三层,每一层是同类的集合。原创 2014-03-06 21:32:02 · 966 阅读 · 1 评论 -
hdu3038 How Many Answers Are Wrong --- 种类并查集
题意:给出一些信息 a b d 表示a点到b点的结点权值和等于d问其中有多少组信息是错误的 一组信息和已经出现的信息不符就是错误的种类并查集的关键在于找到根节点和子节点之间的关系这里的vis[a]表示a点到根节点的距离#include #include #include #include #include #include #include原创 2014-03-10 19:59:23 · 826 阅读 · 0 评论 -
hdu3635 Dragon Balls
乍一看还以为是线段树什么的。。有两个操作:T A B 表示把A球所在的城市里所有球添加到B球所在的城市Q A 表示 输出A所在的城市,A所在的城市里的球的个数,A转移了几个城市前两个输出比较简单,关键是最后一个,相当于问A所在的城市被合并了几次好在题目给的是 球代表的城市进行转移,这就说明,一个城市最多只能转移一次(之后就为空,就再也无法转移或被转移了)那么移动次数原创 2014-03-10 18:19:50 · 773 阅读 · 0 评论 -
hdu 1829 A Bug's Life
并查集之判断是否是二分图(定义:设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。)题意呵呵呵,男女各站一边,找出那对同性恋!这里对每一对关系a和b,把自己的另一半和之前的另一半(如果有的话)合并,即他们是一个性别的。给原创 2014-03-05 20:00:55 · 959 阅读 · 0 评论 -
poj 2524 Ubiquitous Religions --- 并查集
并查集求不相交集合的个数 模板#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int r[50005],n,m,vis[5000原创 2014-03-03 22:19:38 · 802 阅读 · 0 评论 -
hdu 1232 畅通工程
并查集 求集合个数依题意,这里集合个数-1为所求#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int r[1005],n,原创 2014-03-04 18:43:03 · 817 阅读 · 0 评论 -
wustoj 1319 球
水题并查集。合并相同颜色的球,求不同集合数量。#includeconst int maxn=10010;int r[maxn],n,m,ans,T;void init(){ for(int i=0;i<=n;i++) r[i]=i,num[i]=1;}int root(int a){ if(r[a]==a) return a;原创 2015-01-16 20:27:44 · 914 阅读 · 0 评论