并查集
并查集
SSL_LKJ
蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名
展开
-
2021.8.11【提高B组模拟3】T2 + P2323 [HNOI2006] 公路修建问题(并查集)
SSL集训原创 2021-08-11 19:56:51 · 186 阅读 · 0 评论 -
2021.8.9【提高B组模拟1】T2 QYQ在艾泽拉斯(Tarjan强连通分量)(并查集)
SSL集训原创 2021-08-09 22:14:18 · 122 阅读 · 0 评论 -
逐个击破(并查集)
逐个击破解题思路把公路看作边把城市看作点被占领的城市称为特殊点这题就成了求使特殊点互不连通的最优删边方案AC代码#include<algorithm>#include<cstdio>using namespace std;long long n,m,k,x,ans,b[1000005],f[1000005];struct node{ long long x,y,z;}a[1000005];bool cmp(node x,node y){ retu原创 2021-05-06 16:56:52 · 174 阅读 · 1 评论 -
超市购物(并查集)
超市购物解题思路将每个时间点看作一个集合把收益按从大到小排序AC代码#include<algorithm>#include<iostream>#include<cstdio>using namespace std;int n,ans,f[10005];struct node{ int p,d;}a[10005];bool cmp(node x,node y){ return x.p>y.p;}int find(int x)//找原创 2021-05-06 16:50:29 · 142 阅读 · 0 评论 -
P2024 [NOI2001] 食物链(并查集)
食物链解题思路这题可以用扩展域并查集分别是:同类捕食天敌AC代码#include<cstdio>using namespace std;int n,k,ans,f[50005*3];int find(int x){ if(f[x]==x)return x; return f[x]=find(f[x]);}int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=3*n;i++)f[i]=i; f原创 2021-05-06 16:41:24 · 77 阅读 · 0 评论 -
P1196 [NOI2002] 银河英雄传说(并查集)
银河英雄传说题目传送门解题思路边带权的并查集AC代码#include<iostream>#include<cstdio>#include<cmath>using namespace std;int t,f[30005],num[30005],sum[30005];int find(int x)//找爸爸{ if(x==f[x])return x; int xx=find(f[x]); sum[x]+=sum[f[x]]; return f原创 2021-05-06 16:24:33 · 165 阅读 · 0 评论 -
P1955 [NOI2015] 程序自动分析 (并查集 + 离散化)
程序自动分析题目传送门解题思路先排序把所有e=1的操作放在前面然后再进行e=0的操作在进行e=1的操作的时候我们只要把它约束的两个变量放在同一个集合里面即可在e=0,即存在一条不相等的约束条件,于它约束的两个变量如果在一个集合里面那就不可能满足如不相等的约束条件都满足那就YES数据太大,建议用离散化离散化AC代码#include<algorithm>#include<cstdio>using namespace std;int tot,f[原创 2021-04-16 21:25:42 · 140 阅读 · 0 评论 -
【模板】并查集(并查集)
【模板】并查集解题思路并查集模板并查集并就是合并查就是查找集就是集合总而言之:合并集合,查找集合为了方便将两个数字的集合合并为了方便判断两个数字是否属于同一集合就有了并查集AC代码#include<iostream>#include<cstdio>using namespace std;int n,m,z,x,y,pre[10005];int find(int x)//找爸爸+路径压缩{ if(pre[x]==0)return x; retur原创 2021-04-16 20:48:27 · 111 阅读 · 0 评论 -
最短网络(并查集)
最短网络Description农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000Input****第一行: 农场的个数,N(3<=N<=100)。第二行…结尾: 后来的行包含了一原创 2020-07-21 08:50:46 · 503 阅读 · 0 评论 -
家谱(并查集)
家谱Description现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先。Input输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 组成,用#name 的形式描写一组父子关系中的父亲的名字,用+name 的形式描写一组父子关 系中的儿子的名字;接下来用?name 的形式表示要求该人的最早的祖先;最后用单独的一个 $表示文件结束。规定每个人的名字都有且只有 6 个字符,而且首字母大写,且没有任意两 个人的名字相同。原创 2020-07-21 08:14:52 · 531 阅读 · 0 评论 -
矩形(并查集)
矩形Description在一个平面上有n个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。每一个矩形都是一个块。如果两个不同的矩形有公共线段,那么它们就组成了一个新的块来覆盖它们原来的两个块。例子:在图1中的矩形组成了两个不同的块。Input在输入文件PRO.IN的第一行又一个整数n,1 <= n <=7000,表示矩形的个数。接下来的n行描述矩形的顶点,每个矩形用四个数来描述:左下顶点坐标(x,y)与右上顶点坐标(x,y)。每个矩形的坐标原创 2020-07-21 07:41:05 · 1782 阅读 · 0 评论 -
旅行(并查集)
旅行DescriptionZ小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。速度变化太快使得游客们很不舒服,因此从一个景点前往另一个景点的时候,大家都希望选择行使过程中最大速度和最小速度的比尽可能小的路线,也就是所谓最舒适的路线。Input第一行原创 2020-07-20 21:35:06 · 836 阅读 · 0 评论 -
P3367 【模板】并查集(并查集)
【模板】并查集题目传送门题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入格式第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。接下来M 行,每行包含三个整数Zi,Xi,Yi。当Zi=1 时,将Xi与Yi所在的集合合并。当Zi=2 时,输出Xi与Yi是否在同一集合内,是的输出 Y ;否则输出 N 。输出格式对于每一个Zi=2 的操作,都有一行输出,每...原创 2020-02-29 13:55:51 · 786 阅读 · 1 评论 -
P1551 亲戚(并查集)
亲戚题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。题目描述规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入格式第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,...原创 2020-02-29 13:37:43 · 737 阅读 · 0 评论 -
P2078 朋友(并查集)
朋友题目背景小明在A公司工作,小红在B公司工作。题目描述这两个公司的员工有一个特点:一个公司的员工都是同性。A公司有N名员工,其中有P对朋友关系。B公司有M名员工,其中有Q对朋友关系。朋友的朋友一定还是朋友。每对朋友关系用两个整数(Xi,Yi)组成,表示朋友的编号分别为Xi,Yi。男人的编号是正数,女人的编号是负数。小明的编号是1,小红的编号是-1.大家都知道,小明和小红是朋友,那么...原创 2020-02-29 13:14:24 · 580 阅读 · 0 评论 -
P1111 修复公路(并查集)
修复公路题目背景A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。题目描述给出A地区的村庄数N,和公路数M,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)输入格式第11行两个正整数N,M下面MM行,每...原创 2020-02-28 22:13:54 · 231 阅读 · 0 评论 -
P1536 村村通(并查集)
村村通题目描述某市调查城镇交通状况,得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。市政府“村村通工程”的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要相互之间可达即可)。请你计算出最少还需要建设多少条道路?输入格式每个输入文件包含若干组测试测试数据,每组测试数据的第一行给出两个用空格隔开的正整数,分别是城镇数目N(N<1000)和道路数目M;随后...原创 2020-02-28 21:42:49 · 448 阅读 · 0 评论 -
P1455 搭配购买(并查集+dp)
搭配购买题目穿越门题目描述明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有n朵云,云朵已经被老板编号为1,2,3,……,n,并且每朵云都有一个价值,但是商店的老板是个很奇怪的人,他会告诉你一些云朵要搭配起来买才卖,也就是说买一朵云则与这朵云有搭配的云都要买,电脑组的你...原创 2020-02-28 21:19:07 · 586 阅读 · 0 评论