![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 75
愤怒的北方酱
这个作者很懒,什么都没留下…
展开
-
poj2492解题报告
题目大意:给出N条虫子,然后a和b啪啪啪,给出M对a和b啪啪啪的关系,然后问有没有同性恋的虫子~~ 解题思路:并查集,按秩合并,rank[i]表示i和他的父亲节点是不是同性,在查找和合并的时候秩需要改变,改变方式具体看代码,这个杭电里我做过的一道题有点像. #include #include #include #include using namespace std; const int ma原创 2015-07-21 16:29:09 · 381 阅读 · 0 评论 -
hdu1116解题报告
(转,代码是我自己的,最近考试,感冒发烧,实在写不动了)题意:判断n个单词是否可以相连成一条链或一个环,两个单词可以相连的条件是 前一个单词的最后一个字母和后一个单词的第一个字母一样。 分析:有向图的欧拉回路判断 链: 头 入度==出度-1 ;中间 入度==出度 ; 尾 入度==出度+1; 注: 欧拉回路的定义:图G的一个回路,若它恰通过G中每条边一次,则称该回路为欧拉(E原创 2015-06-28 18:07:40 · 472 阅读 · 0 评论 -
hdu1213解题报告
题目大意:太水了,都有点记不清了; 解题思路:并查集来做,认识的人都find一发即可,最后在遍历一遍,看有几个p[i]==i的,就有几张桌子 #include #include #include #include using namespace std; const int maxn=1000+10; int p[maxn]; void MakeSet(int n) { for原创 2015-06-27 09:39:17 · 466 阅读 · 0 评论 -
poj1703解题报告
题目大意:题目大意:在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙 输入D x y代表x于y不在一个团伙里 输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里 解题思路:这道题真没做出来,参考了别人的思路,感觉别人的思路真实绝妙,最近期末,也没什么时间去想,去思考,真心可惜了,它的思路是除了表示并查集的数组p[x],还有个rank[x]表示原创 2015-06-23 23:40:59 · 559 阅读 · 0 评论 -
poj3522解题报告
题目大意:题意:给点一个无向图,求一个生成树使树中最大边与最小边的差的最小。 解题思路;首先按照边权排一次序,然后依次枚举最小的边权,利用kruskal算法生成无根树!!!(利用并查集维护集合关系) #include #include #include #include #include using namespace std; const int maxn=1e4; const原创 2015-06-25 00:17:16 · 644 阅读 · 0 评论 -
hdu1272解题报告
题目大意: 小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间原创 2015-06-22 00:05:20 · 288 阅读 · 0 评论 -
hdu1232解题报告
题目大意:给你一个图,让你判断有几个连通分量需要几条边? 解题思路:使用并查集,把所有的分量都放在分别的集合中(树状数组中)最后在遍历一边所欲结点,看有几个根节点即可~~ 代码: #include #include #include using namespace std; const int maxn=1000+10; int p[maxn],n,m; int Find(int原创 2015-06-22 00:14:24 · 494 阅读 · 0 评论 -
hdu5441&15年长春网赛1005
题目大意:有一n个点,m条边的带边权的图,然后给出q个问题,每个问题会给一个边权的量,在图中,超出这个边权,就算不连通,问在判断不连通之后,图中还有多少对连通的点? 解题思路:并查集,此时每个结点的秩为它的子节点的数目~~ 注意点: 1.让边以边权从小到大排序,然问题按照提供的边权的排序。(这两个优化很重要,不用每次都去重新扫) 2.两个连通块合并之后,其大小是2*rank_num[u]*原创 2015-09-14 18:30:09 · 623 阅读 · 0 评论