E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
路径压缩
JAVA算法4――连通性问题之
路径压缩
的加权快速合并算法
能否找到一个保证线性时间性能的算法,这个问题非常难。还有一些改进加权快速合并算法的简单方法。理想情况下,我们希望每个结点直接连到其树根,但又不想像快速合并算法那样改变大量连线。我们可以简单地把所检查的所有结点连到根上,从而接近理想情况。我们可以很容易地实现此方法,方法名为压缩路径,在合并操作时,经过每条路径就加一条连线,也就是把一路上遇到的对应于每个顶点的id数组值都设为连到树根上。净结果
kaidi205
·
2015-03-21 13:36
java算法
折半路径压缩
路径压缩
例题3.6 合作网络 UVa1329
当进行
路径压缩
时,更新这个距离值即可。
u014800748
·
2015-03-17 20:00
并查集
HDU 3635 Dragon Balls(并查集--
路径压缩
拓展应用)
题目大意:初始时,有n个龙珠,编号从1到n,分别对应的放在编号从1到n的城市中。现在又2种操作:TAB,表示把A球所在城市全部的龙珠全部转移到B城市。(第一次时,因为A球所在的城市只有一个球,所以只移动1个,如果有多个,则全部移动)。QA,表示查询A。要求得到的信息分别是:A现在所在的城市,A所在城市的龙珠数目,A转移到该城市移动的次数(如果没有移动就输出0)思路:并查集,难点在于求龙珠的转移次数
kalilili
·
2015-03-14 23:00
POJ1182 食物链 ACM解题报告(并查集+
路径压缩
难题)
这题真的是做的我都想吐了,WA了几次之后就跪了,然后百度题解,原来是要
路径压缩
,把所有的并入一个集合,真的是过于巧妙了。
Miracle_ma
·
2015-02-12 18:00
ACM
poj
LCA离线tarjan算法模板
//并查集记录父亲的数组. intfather[MAXN]; //并查集的查找函数,有
路径压缩
功能. intfind(intx) { returnfather[x]==x?
qq_24451605
·
2015-01-25 14:00
C++
并查集
LCA
并查集的两个优化(秩优化+
路径压缩
)
路径压缩
寻找祖先时采用递归,但是一旦元素一多起来,或退化成一条链,每次GetFather都将会使用O(n)的复杂度,这显然不是我们想要的。
kalilili
·
2015-01-22 08:00
UVA 1329 - Corporative Network
在I操作的时候
路径压缩
,更新D数组。 #include #include intabs(intx){returnx>0?
KJBU2
·
2015-01-13 09:00
uva1493 - Draw a Mess 并查集
路径压缩
It'sgraduatedseason,everystudentsshouldleavesomethingonthewall,so....theydrawalotofgeometryshapewithdifferentcolor.Whenteachercometoseewhathappened,withoutgettingangry,hewassurprisedbythetalentedachie
corncsd
·
2014-12-26 19:00
hdu 1506
路径压缩
题目:每次只要确定以当前长方形的高为高为高时,确定它左边界和右边界,可以利用并查集中的
路径压缩
做,确定左右边界后,枚举判断最大代码:#include #include #include #include
qq_24451605
·
2014-12-24 12:00
C++
算法
HDU
并查集
双亲树-等价类
完成了
路径压缩
。算法仍然采用严蔚敏的教材中等价类章节中的算法。
Moyiii
·
2014-12-01 18:00
数据结构
树
等价类
【并查集专题】【HDU】
PS:做到第四题才发现2,3题的
路径压缩
等于没写HowManyTablesTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java
zy691357966
·
2014-11-29 18:00
poj 1182 食物链 //带权并查集
#include intani[55000],rel[55000]; voidinit(intn) { inti; for(i=0;i//回溯
路径压缩
,好好理解0.0 { intfx; if(x==
Ash_Zheng
·
2014-11-25 13:00
并查集
我眼中的并查集
这个差和搜中搜的最为巧妙,可以用
路径压缩
,路劲压缩有用到dfs+dp的思想,其实就是把每个节点的父亲都变为始祖,这个下次搜索的时候就不用递归搜,直接可以得到始祖,节省了非常多的时间,对于大多数题目不
路径压缩
基本超时
My_ACM_Dream
·
2014-11-13 11:00
算法
合并
28个不得不看的经典编程算法
而
路径压缩
的好主意,更是整个数据结构的画龙点睛之笔。并查集的效率极高,单次操作的时间复杂度几乎可以看作是常数级别;但由于数据结构的实际行为难以预
xjhznick
·
2014-11-06 17:15
Algorithm
POJ 1988 Cube Stacking (种类并查集)
题目地址:POJ1988 这道题的查找合并的方法都能想的到,就是一点没想到,我一直天真的以为查询的时候,输入后能马上输出,这样的话在合并的时候就要所有的结点值都要算出来,但是经过
路径压缩
之后,没办法全部都处理到
u013013910
·
2014-10-01 21:00
编程
算法
C语言
ACM
并查集
hdu 1213 HOW MANY TABLES
FInd函数写递归
路径压缩
的竟然会爆栈。。
Baoli1008
·
2014-08-14 11:00
并查集
Codeforces Round #260 (Div. 2) E
思路:核心是
路径压缩
的并查集。这个题要解决两部分问题,
squee_spoon
·
2014-08-10 09:00
并查集
codeforces
POJ1861-Kruskal算法
二是 并查集的
路径压缩
,我以前对并查集合并是遍历所有的结点对两个集合合并, 而正确的做法应该是这样 int flindfather(
人生难得糊涂
·
2014-08-08 19:00
poj
并查集及并查集的
路径压缩
1.引入什么是并查集?导引问题:【犯罪团伙】警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。有可能一个犯罪团伙只有一个人。请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。输入:第一行:n(=0)x=father[x];returnx;}Union(
dingxinyue
·
2014-08-04 21:35
ACM算法
Find them, Catch them
usingnamespacestd; #definemaxn100010//一个帮派的上限 intset[maxn+maxn];//龙帮帮派,蛇帮帮派为k+n intn,m; intfind(intd)//带
路径压缩
的并查集查找集合代表元素
u014552756
·
2014-08-01 18:00
并查集的启发式合并 和
路径压缩
操作之一:检索某元素属于哪个集合;操作之二:合并两个集合启发式合并:让深度小的数成为深度较大的树的子树
路径压缩
:找到u所在的树根v以后,把从u到v的路径上所有点的父亲都设置为v//f[]数组存放根节点,
u014141559
·
2014-07-08 22:00
[备战NOI同步赛]适合ACM-ICPC的并查集模板
/* 并查集模板 By:qpswwww(ZYK) 包含findSet(),makeSet(),Union(),使用
路径压缩
式查找 注:不同的题目对合并的要求不同
qpswwww
·
2014-07-02 19:00
并查集
【AC自动机模板】(转自木子日匀大神)
相当于是一个
路径压缩
的思想吧。这样一来,建
blankcqk
·
2014-06-30 19:00
并查集
我们还用了
路径压缩
(好厉害的名字)其实就是从图中可以很清晰的看明白。现在我们来写构造并查
u010123208
·
2014-05-29 21:00
算法
ACM
《算法导论》笔记 第21章 *21.4 带
路径压缩
的按秩合并的分析
【笔记】一个增长极快的函数及其增长极慢的逆函数秩的性质对所有的结点x,有rank[x]<=rank[p[x]],如果x!=p[x]则不等号严格成立。rank[x]的初始值为0,并随时间而增长,直到x!=p[x];从此以后,rank[x]就不再变化。rank[p[x]的值是时间的单调递增函数。在从任何一个结点指向根的路径上,结点的秩是严格递增的。每个结点的秩至多为n-1。时间界的证明势函数势的变化和
cyendra
·
2014-05-01 10:00
《算法导论》笔记 第21章 21.3 不相交集合森林
路径压缩
:使查找路径上的每个结点都直接指向根结点。
路径压缩
并
cyendra
·
2014-04-30 21:00
nbut 1058 火烧赤壁 2
整个代码除了添点并查集的逆序操作这个精华之外还有关于并查集部分的
路径压缩
(否则铁定的tle)读者可自行编写并查集部分。欢迎尝试。#include#include#includ
u014389688
·
2014-03-27 18:00
Sicily10481(并查集)
特别注意当B集合合并到A集合的时候,B集合的根节点的rank值需要更新,且其所有子节点也可能需要更新,在
路径压缩
的时候进行特殊处理确保子节点能够得到正确的rank值。
immiao
·
2014-03-19 17:00
POJ 1417 True Liars(
路径压缩
并查集+DP背包问题)
POJ1417TrueLiars(
路径压缩
并查集+DP背包问题)http://poj.org/problem?id=1417题意: 给出p1+p2个人,其中p1个是好人,p2个是坏人。
u013480600
·
2014-03-14 12:00
ACM
POJ 2912 Rochambeau(
路径压缩
并查集)
POJ2912Rochambeau(
路径压缩
并查集)http://poj.org/problem?
u013480600
·
2014-03-13 23:00
ACM
HDU 3038 How Many Answers Are Wrong(
路径压缩
并查集)
HDU3038HowManyAnswersAreWrong(
路径压缩
并查集)http://acm.hdu.edu.cn/showproblem.php?
u013480600
·
2014-03-13 13:00
ACM
POJ 1733 Parity game(
路径压缩
并查集+离散化)
POJ1733Paritygame(
路径压缩
并查集+离散化)http://poj.org/problem?
u013480600
·
2014-03-12 23:00
ACM
POJ 2492 A Bug's Life(
路径压缩
并查集)
POJ2492ABug'sLife(
路径压缩
并查集)http://poj.org/problem?id=2492题意: 有N个虫子和M次两个不同虫子的交流行为。
u013480600
·
2014-03-12 12:00
ACM
POJ 1988 Cube Stacking(
路径压缩
并查集)
POJ1988CubeStacking(
路径压缩
并查集)http://poj.org/problem?
u013480600
·
2014-03-12 10:00
ACM
POJ 1703 Find them, Catch them(
路径压缩
并查集)
POJ1703Findthem,Catchthem(
路径压缩
并查集)http://poj.org/problem?
u013480600
·
2014-03-11 20:00
ACM
POJ 1182 食物链(并查集:
路径压缩
)
POJ1182食物链(并查集:
路径压缩
)http://poj.org/problem?id=1182题意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。
u013480600
·
2014-03-10 20:00
ACM
HDU 3635 Dragon Balls(并查集:
路径压缩
)
HDU3635DragonBalls(并查集:
路径压缩
)http://acm.hdu.edu.cn/showproblem.php?
u013480600
·
2014-03-09 17:00
ACM
UVA 1329 Corporative Network(并查集:
路径压缩
)
UVA1329CorporativeNetwork(并查集:
路径压缩
)题意: 初始时有n个点(编号1到n),每个点都没有父节点,然后依次执行下面两条命令: Iuv:把节点u的父亲设置为v,
u013480600
·
2014-03-09 00:00
ACM
hdu 1232 畅通工程(并查集)
intfind(intx){ if(x==pre[x])returnx; elsepre[x]=find(pre[x]); returnpre[x]; }//查询,即查找集合的代表元素(查找树根) //
路径压缩
采用递归的方法
u013365671
·
2014-03-01 17:00
水题
并查集
路径压缩
使用并查集查找时,如果查找次数很多,那么使用朴素版的查找方式肯定要超时。比如,有一百万个元素,每次都从第一百万个开始找,这样一次运算就是10^6,如果程序要求查找个一千万次,这样下来就是10^13,肯定要出问题的。这是朴素查找的代码,适合数据量不大的情况:intfindx(intx) { intr=x; while(parent[r]!=r) r=parent[r]; returnr; }
u013476556
·
2014-02-22 19:00
并查集
可以按秩合并,也可以直接
路径压缩
。 先附上一个题集。并查集题集 我只切了4、5道,下面附上简单代码:http://acm.hust.edu.cn/vjudge/contest/view.action?
u012350533
·
2014-01-16 11:00
亲戚 (并查集
路径压缩
)
亲戚 (并查集
路径压缩
)来源:http://blog.sina.com.cn/s/blog_86995a7d0100v067.html【问题描述】若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易
u012349696
·
2014-01-15 08:00
数据结构
压缩
最小生成树--Kruskal
Kruskal代码模板基本思路: 新手初学,使用优先队列,免去排序;并查集判环,过程中进行了
路径压缩
,以提高效率;然后贪心建立最小生成树,min为最小权值; 算法演示: http://sjjg.js.zwu.edu.cn
u012628310
·
2013-12-20 14:00
最小生成树
图论
kruskal
并查集
POJ 2492
只要在
路径压缩
和合并的时候注意即可。
X_White
·
2013-12-18 11:00
并查集
加入rank[N]来记录每个节点的秩(即树的高度),并按秩进行合并,可避免合并时的最糟糕情况,(树形为一条直线)通过
路径压缩
可以减少每次寻找根节点的次数。rank[n]数组中,树是倒立
u011466175
·
2013-12-16 01:00
HDU 3635 并查集+
路径压缩
+记录每个点移动次数
题意:给定n个点oper个操作每个点有1个龙珠下面2种操作:Tuv把u点所有龙珠搬到vQu 问u点当前所在城市u点所在城市有几个龙珠u点被移动几次 思路:并查集可以求出u点所在城市,记录每个点的son(子节点数)可以求出某城市的龙珠数量用step记录每个点被移动了几次#include #include inlineintMax(inta,intb){returna>b?a:b;} #de
qq574857122
·
2013-11-19 22:00
hdu 3038 - How Many Answers Are Wrong(并查集)
思路: 思路和poj1733差不多,就是把利用并查集把所有区间的起点和终点都放到集合里面,其中s[x]用来表示区间(p[x],x]的和,其他合并区间和
路径压缩
的公式也很好推,具体的见代码。
shankeliupo
·
2013-10-23 12:00
POJ 2513 Colored Sticks
并查集+
路径压缩
判断图是否连通。另在图连通的情况下若不存在度数为奇数的点或有且仅有两个度数为奇数的点,则存在欧拉回路。1#include 2#include 3#in
u012161037
·
2013-09-18 15:00
POJ1789 Truck History 最小生成树 +
路径压缩
普利姆或者克鲁斯卡尔+
路径压缩
我认为后者能通吃所以很无耻的不会第一种。。。。。
u012161037
·
2013-09-18 15:00
食物链总结
A吃B,A吃C==》B、C为同类 A被B吃,A被C吃==》B、C为同类用并查集来做:两种动物之间的关系通过于根节点的相对关系得出,所以关键是
路径压缩
与合并两个集合时
haha593572013
·
2013-08-19 18:00
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他