并查集
无名蒟蒻
苟利国家生死以,岂因祸福避趋之
展开
-
usaco2016open silver3 closing
<p class="MsoNormal" style="margin-top:0.0pt;margin-right:0.0pt;margin-bottom:0.0pt;margin-left:0.0pt;text-indent:0.0pt;text-align:justify;text-justify:inter-ideograph;line-height:normal;pag原创 2016-08-07 11:10:17 · 304 阅读 · 0 评论 -
smoijs1262 -- 朋友
题目大意:有N个人,M个朋友关系。如果A和B是朋友,B和C是朋友,则A和C也是朋友。求最大的朋友集团人数。分析:用并查集解决。初始集合每个人只“和自己是朋友”,每读入一条朋友关系就判断两人是否已经在同一个集合里。如果两人不在同一集合中则合并。代码:# include #define max(x,y) x>y?x:yconst int SIZE=30000+5;int N , M , f原创 2016-08-07 11:08:58 · 303 阅读 · 0 评论 -
smoijs1261 -- 夺宝奇兵
题意:有N个房间,每个房间仅有一把能打开它的钥匙。每个房间内有若干钥匙。求最少炸几个房间能开全部房间。分析:显然如果房间i内有房间j的钥匙,我们认为i和j是在同一个集合里的,反之亦然。问题即为求房间集合的个数。代码:# include const int SIZE=50000+5;int N , f[SIZE] ;int _find ( int ) ; //求集合的根void _un原创 2016-08-07 11:09:01 · 369 阅读 · 0 评论 -
洛谷1551 -- 亲戚
题意:有N个人和M个亲戚关系,规定若i是j的亲戚则i的所有亲戚都是j的亲戚。有P次询问某两人是否具有亲戚关系。分析:具有亲戚关系的人都在同一个集合里,符合并查集的性质。本题数据范围不大,N代码:# include const int SIZE=5000+5;int n , m , p , f[SIZE] ;int _find ( int ) ; //求集合的根void _union原创 2016-08-07 11:09:04 · 316 阅读 · 0 评论 -
洛谷1111 -- 修复公路
题意:有N个村庄和M条双向公路,给定每条公路连着的两个村庄和修完这条公路的时间。问最早什么时候任意两个村庄能够通车。分析:通车的村庄在同一个集合里,本质上也是并查集。先按时间排序,修公路的顺序按时间从早到晚。每修一条公路就判断整个图是否连通。代码:# include # include const int SIZEN=1000+5;const int SIZEM=100000+5;st原创 2016-08-07 11:09:07 · 365 阅读 · 0 评论 -
poj1611 -- The Suspects
题意:编号为0的同学得了病,会传染给所有与他同一小组的人。给定M个小组的成员名单(一个人可以加入多个小组),求多少人生病了。分析:在同一集合里就会被传染,并查集。代码:# include # include const int SIZEN=30000+5;const int SIZEM=500+5;int n , m , f[SIZEN] ;int _find ( int ) ;原创 2016-08-07 11:09:09 · 226 阅读 · 0 评论 -
最小生成树(kruskal算法)
问题:详见最小生成树之prim算法算法描述:前提条件:MST一定无环,以确保不产生浪费。每次选择一条权最小的边e。若将e加入MST中会产生环,则放弃e;否则将e加入MST中。如果已经加了N-1条边,结束;否则执行2。怎么判断是否形成环?可以用并查集实现。将已选的顶点放入一个集合中,若当前边e的两个顶点一个在集合内,一个在集合外则说明不会形成环。时间复杂度:O(|e|log2|e|)这里给出一个例子原创 2016-08-07 11:09:15 · 283 阅读 · 0 评论 -
[SMOJ1426]最小生成树
现在让你来挑N-1条边,让这N个星球连通成一个最小生成树,输出构成最小生成树的N-1条边的长度总和。原创 2017-03-14 21:20:19 · 374 阅读 · 0 评论 -
usaco2016open gold2 closing
<p class="MsoNormal" style="margin-top:0.0pt;margin-right:0.0pt;margin-bottom:0.0pt;margin-left:0.0pt;text-indent:0.0pt;text-align:justify;text-justify:inter-ideograph;line-height:normal;pag原创 2016-08-07 11:10:23 · 333 阅读 · 0 评论 -
[SMOJ2074]RP路
[SMOJ] 解题报告原创 2017-08-02 17:15:32 · 313 阅读 · 0 评论