![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
VL——MOESR
ga
展开
-
【2022年10月18日A组】万松园
题解原创 2022-10-19 17:54:59 · 85 阅读 · 1 评论 -
【集训DAY13】Internet【并查集】
并查集原创 2022-07-23 15:52:26 · 71 阅读 · 0 评论 -
【YBTOJ进阶训练指导】小明反击【并查集】
思路:考虑两个连通块合并,把所有不连的边赋为w+1codecodecode#include<iostream>#include<algorithm>#include<cstdio>using namespace std;long long t, n, fa[1010100], siz[1010100];struct node{ long long x, y, w;}a[1010100];bool cmp(node x, node y)..原创 2022-02-21 20:17:03 · 98 阅读 · 0 评论 -
【YBTOJ进阶训练指导】染色操作
思路:因为每个点只会染一次,所以考虑把不需要染的点跳过,运用并查集codecodecode#include<iostream>#include<cstdio>using namespace std;int n, m, ans;int fa[1010100];int find(int x){ if(x==fa[x]) return x; return fa[x]=find(fa[x]);}int main(){ scanf("%d%d",..原创 2022-02-21 19:53:49 · 173 阅读 · 0 评论 -
2021.08.20【NOIP提高A、B组】模拟 Tree
思路:枚举平均数,直接计算codecodecode#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int n, m, fa[1010];struct node{ int x, y; double w, fang;}b[400100];double maxn, a[10100], ans=10000..原创 2021-08-20 19:45:46 · 73 阅读 · 0 评论 -
【Luogu_P5787 】二分图 /【模板】线段树分治
思路:是一道模板题codecodecode#include<iostream>#include<cstdio>#include<queue>using namespace std;int n, m, ex[1001000], ey[1001000], top, fa[1001000], height[1001000];vector<int> t[1001000];struct node{ int x, y, add;}st[1..原创 2021-08-18 10:49:10 · 66 阅读 · 0 评论 -
2021.08.09【NOIP提高B组】模拟 QYQ在艾泽拉斯
思路;直接缩点然后贪心走,注意细节codecodecode#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;long long n, m, tot, cnt, tmp, tot1, k, tot2;long long stack[1001000], top, r..原创 2021-08-10 20:41:46 · 90 阅读 · 0 评论 -
【YBTOJ】超市购物
思路:我们可以直接先排序贪心,每次选最大的,然后看它的时间是否过期。然后就会发现超时所以用并查集每次把当前的货给选了之后,其他和他相同时间的货全部都要推到明天再去考虑,所以直接用并查集把和当天选了的货的时间相同的货并到明天的时间里去就行了codecodecode#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n;struct node..原创 2021-04-03 11:01:12 · 105 阅读 · 0 评论 -
【YBTOJ】逐个击破
思路:我们可以把题目转化成,现在有一些各不连通的点,然后要联通其中一些边,使得特殊点不在一个连通块里,然后求最大的连边权值我们可以贪心暴力,每次考虑连最大的边,然后判断两个连通块是否都有特殊点,如果都有那就不连,如果其中一个有,那就把没有的那个连向那个有的,这样就可以保证没有的那个连通块每次找到的最终祖先都是那个有特殊点的最终祖先。codecodecode#include<iostream>#include<cstdio>#include<algorithm&..原创 2021-04-03 09:27:08 · 126 阅读 · 0 评论 -
【YBTOJ】食物链
思路:我们可以用拓展域并查集,简单来说就是把fa的范围扩大几倍我们可以让x+n表示x的天敌,x+2n表示x的猎物如果z=1,那么就判断如果x的天敌是y,或者y的天敌是x,那么就是假话如果z=2,那判断如果x和y是同类或者y的猎物是x的话,那么就是假话,然后这里合并时,x的同类就是y的天敌,x的天敌就是y的猎物,x的猎物就是y的同类codecodecode#include<iostream>#include<cstdio>using namespace std;..原创 2021-04-02 21:32:42 · 153 阅读 · 0 评论 -
【YBTOJ】银河英雄传说
思路:这道题我们可以设一个num表示当前序列有多少个战舰,a表示当前战舰前面有多少个战舰,我们考虑怎样转移1.当一列战舰接到另一列尾时,此时我们只考虑转移队头,那么num[fy]就要加上num[x],a[x]=num[fy]。2.然后考虑怎样转移后面的战舰。并查集时会有个路径压缩,那么它遍历到的一定是它的爸爸,所以直接让它的a值加上它爸爸的a值就完成了转移codecodecode#include<iostream>#include<cstdio>#include&..原创 2021-04-02 21:05:45 · 98 阅读 · 0 评论 -
【YBTOJ】程序自动分析
思路:首先看题,发现是一道并查集模板题,然后发现数据范围太大,所以要离散化codecodecode#include<iostream>#include<cstdio>#include<algorithm>#include<cstring> using namespace std;int n, m;struct node{ int x, y, z;}a[1000010];int f[1000010], d[3000100];..原创 2021-04-02 19:25:33 · 65 阅读 · 0 评论 -
【SSL2342】打击犯罪
Description某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个庞大的犯罪集团,犯罪集团的危险程度唯一由集团内的犯罪团伙数量确定,而与单个犯罪团伙的危险程度无关(该犯罪集团的危险程度为n)。现在当地警方希望花尽量少的时间(即打击掉尽量少的团伙),使得庞大的犯罪集团分离成若干个较小的集团,并且他们中最大的一个的危险程度不超过n/2。为达到最好的效果,他们原创 2020-07-21 20:05:30 · 87 阅读 · 0 评论 -
【SSL2343】家谱
Description现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先。Input输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 组成,用#name 的形式描写一组父子关系中的父亲的名字,用+name 的形式描写一组父子关 系中的儿子的名字;接下来用?name 的形式表示要求该人的最早的祖先;最后用单独的一个 $表示文件结束。规定每个人的名字都有且只有 6 个字符,而且首字母大写,且没有任意两 个人的名字相同。最多原创 2020-07-20 21:37:53 · 99 阅读 · 0 评论 -
【SSL1222】矩形
Description在一个平面上有n个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。 每一个矩形都是一个块。 如果两个不同的矩形有公共线段,那么它们就组成了一个新的块来覆盖它们原来的两个块。 例子: 在图1中的矩形组成了两个不同的块。 写一个程序: 从文件PRO.IN中读入矩形的个数以及它们的顶点。 找出这些矩形形成的不同的块的个数。 将结果写入文件PRO.OUT。 Input在输入文件PRO.IN的第一行又一个整数n,原创 2020-07-20 19:15:50 · 89 阅读 · 0 评论 -
【SSL1312】旅行
Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。速度变化太快使得游客们很不舒服,因此从一个景点前往另一个景点的时候,大家都希望选择行使过程中最大速度和最小速度的比尽可能小的路线,也就是所谓最舒适的路线。Input第一行原创 2020-07-20 15:28:04 · 142 阅读 · 0 评论