并查集
文章平均质量分 85
丿残念灬
这个作者很懒,什么都没留下…
展开
-
HDU-5441 Travel(并查集)
题意:在a,b城市之间移动需要消耗能量d,每到一个城市就可恢复能量,且(a,b),(b,a)表示不同路径,询问Q次,在能量为dis的情况下可以在多少对城市间移动 题解:离线+并查集 先把询问离线处理,按dis从小到大排序,用并查集对城市进行合并,只要2个城市间消耗的能量小于dis即可走, 新增路线等于合并前2个联通分量的顶点数相乘(记得答案要乘以2)原创 2016-07-27 01:29:58 · 370 阅读 · 0 评论 -
POJ-2524 Ubiquitous Religions(并查集)
题解:先输入n,以下n行分别告诉你a和b信同种宗教,要求最多有多少个不同的宗教 并查集求联通分量个数 #include const int maxn = 50000 + 5; int p[maxn]; int find(int x){ return p[x]==x?x:(p[x]=find(p[x])); } int main(){ int n,m,T=1;原创 2016-07-27 01:35:28 · 283 阅读 · 0 评论 -
HDU-5923 Prediction(并查集/暴力)
传送门:HDU-5923 题意:给你一个图G(V,E),n个点m条边。然后有一棵点数为m的树T,根为1, 树中每个点对应为图G的每条边 接下来有q次查询,每次查询有一个点数为k的集合S, 如果一个树中一个点在集合S中,那么它的祖先也都要加入集合S,问由集合S组成的图G‘有多少个连通块 吐槽:表示从来没用过如此暴力的并查集,30w*500的复杂度竟然可以随便过(还有T组数据。。。 题解:并原创 2017-08-11 13:49:25 · 728 阅读 · 0 评论 -
HDU-6039 Gear Up(线段树+DFS序)
传送门:HDU-6039 题意:n个齿轮,有m(m ①2齿轮共轴,这时角速度相等 ②2齿轮共边,这时线速度相等 每对齿轮最多只有一种连接方式 现在给出2种操作: ①修改一个齿轮的半径 ②给予一个齿轮x角速度y,问所有齿轮中角速度最大值(取自然对数ln(ans)) 题解: n个齿轮和m条边可以组成一个森林,对于每个节点只要考虑与它连通的节点即可,因此 这里只考原创 2017-07-27 23:11:44 · 727 阅读 · 0 评论 -
HDU-6392 Reverse Game(线段树+并查集)
Reverse Game Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 73 Accepted Submission(s): 34 Problem Description One day, Umaru was enjoyi...原创 2018-08-14 19:52:52 · 497 阅读 · 0 评论