并查集
文章平均质量分 51
图论
Top_xiao
这个作者很懒,什么都没留下…
展开
-
Space Gophers 校赛排位
题意:在一个巨大的三维网格空间中建造 n 条垂直坐标系的隧道,q 个询问,询问两点之间是否可以通过隧道到达。分析:考虑使用并查集维护,但是如何合并两条隧道较难处理,因为这个网格空间的量级是 1e6 的,我们不可能每次都将整条隧道中的点合并。假设建了一条 (x,y,−1) 的隧道,如下图加粗蓝色柱体:题解链接总结:写完这个题给我的体会就是我缺少三维空间的想象能力。然后还有 并查集可以写一个 struct ,这样就会很方便。还有一个匿名函数,写在主程序里面,也很方便。#include<bi原创 2020-09-28 12:06:13 · 220 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) E. One-Way Reform (并查集,欧拉回路)
题意翻译给出一个n个点m条边的无向图,你需要给每条边定向,使得有尽量多的点,入度等于出度,并构造方案 一共有t组数据 t, n <= 200思路:题目给的无向图,没有重边,自环,但是他有可能不是一个连通图,所以我们要用到并查集来做,分成一个一个的小块。然后每个小块我们加上一些边,使得这个小块可以跑欧拉回路。然后输出边的时候我们要注意把那些我们手动加入的边去掉就可以了。存...原创 2019-07-11 13:17:50 · 128 阅读 · 0 评论 -
VK Cup 2012 Finals, Practice Session C. Trails and Glades (欧拉回路,并查集)
题目描述给定一个n个点,m条边的无向图, 可能有重边和自环, 求最少添加几条边,使得图中所有边都在从1出发的欧拉回路上。注意点:1、这个题强制了从 1 开始走2、要走题目中给的所有边3、孤立的点可以不走,如果有自环的话一定要走4、无论什么情况,1 这个点一定要走,思路:这个题我用了并查集来做。然后就是分类讨论了。并查集首先求出来有多少个联通块,这个时...原创 2019-07-11 00:18:50 · 182 阅读 · 0 评论 -
bzoj 1116: [POI2008]CLO
DescriptionByteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个town都有且只有一个入度Input第一行输入n m.1 <= n<= 100000,1 <= m <= 200000 下面M行用于描述M条边.OutputTA...原创 2018-12-23 20:00:39 · 159 阅读 · 0 评论 -
bzoj 1854: [Scoi2010]游戏 并查集。
Descriptionlxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的...原创 2018-12-04 18:56:26 · 196 阅读 · 0 评论 -
bzoj 1202: [HNOI2005]狡猾的商人(存在权值为负数的情况)
Description刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的。账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), 。当 Ai大于0时表示这个月盈利Ai 元,当 Ai小于0时表示这个月亏损Ai 元。所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和。 刁姹的任务是秘密进行的,为了调查商人的账本,她只好跑到商人那...原创 2018-09-01 17:40:44 · 126 阅读 · 0 评论 -
HDU - 3926 Hand in Hand (两个并查集同构)
题意:有T组数据, 每组数据中又有两组数据,问你这两组数据是不是同构的。思路:在并查集合并的时候,把每个并查集的所含有的边记录一下,最后一一对比,集合的个数是不是一样的,集合中的边是不是一样的。 #include <bits/stdc++.h>#define mem(x,v) memset(x,v,sizeof(x)) #define go(i,a,b) ...原创 2018-08-16 19:36:08 · 149 阅读 · 0 评论 -
HDU - 3635Dragon Balls (简单的带权吧)
题意:有标号为1到n的n个龙珠,分别放在对应标号为1到n的n个城市里。 下面有两种操作: T A B表示把A龙珠所在城市的所有龙珠都转移到B龙珠所在的城市中 Q A 表示查询A,需要知道A龙珠现在所在的城市,A所在的城市有几颗龙珠,A转移到这个城市移动了多少次,分别输出3个整数,表示上述信息。 思路:num数组记录当前城市有多少龙珠。dis 数组记录当前节点到根节点一共...原创 2018-08-16 10:34:01 · 219 阅读 · 0 评论 -
HDU - 3172 Virtual Friends
题意:求每个集合中有多少个人。在线输出。 这个题本本没有什么,,但是他的输入数据够烦人的。输入是多组数组,每组数据又有T个数据,所以输入用该这样写。 while(scanf("%d",&T) != EOF){ while(T--) init();} 练容器的题目。我这个题写了半天,一直TLE,,最后找到了原因,竟然是数组开小了...原创 2018-08-16 09:18:55 · 146 阅读 · 0 评论 -
HDU - 3938 Portal (并查集,)
题意:两点之间建立传送门需要的能量为他们之间所有路径里最小的T,一条路径的T为该路径上最长的边的长度。现在 Q 个询问,问 L 能量可以选择多少种不同点对?思路:因为有Q 个询问,我们可以离线做所有的询问,然后最后输出答案。我们可以对所有的权值排序,从小到大,然后进行并查集,如果两个点不在一个并查集,那么两个点加在一起,然后他们可以产生点对是 两个并查集中点的个数的乘积。之所以...原创 2018-08-15 21:09:47 · 190 阅读 · 0 评论 -
HDU - 1811 Rank of Tetris (并查集 + 拓扑排序)
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 终于,Lele要开始行动了,对...原创 2018-08-15 13:16:55 · 438 阅读 · 0 评论 -
POJ - 1182 食物链 (带权并查集,类似向量的方法。)
题意:A,B,C三种动物,A吃B, B吃C,C吃A。有n个动物,他们编号为1~n。输入:第一行n,k,分别表示动物个数,给出k句话(有真有假)。接下来n行每行一句话,每句的格式为三个整数:d,x,y。x,y为动物编号,d为1时表示x,y是同类,d为2时表示x吃y。说明:假话有三种: 1) 当前的话与前面的某些真的话冲突,就是假话; 2) 当前的话中X或Y比N大,就是假话; 3) 当前的...原创 2018-08-14 19:56:42 · 167 阅读 · 0 评论 -
HDU - 3038How Many Answers Are Wrong (扩展并查集。)
题意:给出区间[1,n],下面有m组数据,l r v区间[l,r]之和为v,每输入一组数据,判断此组条件是否与前面冲突 ,最后输出与前面冲突的数据的个数.用到了向量偏移的方法。a 的父亲是 roota,,b 的父亲是 rootb ,对于a,b 两个集合我们怎么把他们合并呢?假设让 roota -> rootb, 我们用dis[a] 表示 a 到根节点的距离。roota...原创 2018-08-14 14:23:57 · 135 阅读 · 0 评论 -
食物链
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说原创 2018-04-13 09:29:36 · 2361 阅读 · 0 评论