
并查集
文章平均质量分 79
zxy_snow
这个作者很懒,什么都没留下…
展开
-
hdu 1213 How Many Tables(并查集~~)
<br />这道题好早以前SK就给我们留的,当时不懂就一直没有写,今天做ZOJ1542太悲剧了 ,POJ过了,ZOJ就是不过,丫丫的,看到这个1213了,一直在收藏夹里,没做,给它A了。。。更深刻滴理解了并查集。。。<br /> <br />做这几道题我都不敢用cin了。。。光出错。。。<br /> <br />#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;const int N = 1原创 2010-09-23 13:33:00 · 1894 阅读 · 0 评论 -
zoj 2833 Friendship(并查集)
嘻嘻。并查集的应用。给你N个人,M种操作,M A B 是使A B 成为朋友,Q A是输出A的朋友数。朋友是可以传递的,比如A B,B C是朋友,那么A C也是朋友。以前一直觉得并查集挺难理解的。这题开始我写的代码很繁琐,找他们公共的祖先,分了4种情况= =。TLE ,WA之后,觉得太麻烦了,就直接查祖先,比较祖先,代码改得很简短了。依旧TLE。好吧。后来加了句话,不光把祖先相连,把判断的那个数的pre变成祖先,900MS过了。#include #include #include #include原创 2011-01-20 11:21:00 · 2501 阅读 · 2 评论 -
zoj 1789 || poj 1611 The Suspects(并查集)
<br />水水的并查集。<br /> <br />开始没想明白,就硬做了 = =。。。建了两个邻接表,每个group连接他的members,每个member连接他的groups。<br /> <br />然后从member 0开始搜,连接的group再搜他的members。。。DFS @ @。。搜到的标记下,最后扫下表。。。输出。<br /> <br />数据量不大,水过了。。<br /> <br />并查集想法,还是看别人的想法,惭愧,其实昨天做的那道和这题很类似的。。。为嘛没想出来呢。。。<br />原创 2011-01-21 11:21:00 · 1820 阅读 · 0 评论 -
zoj 2334 Monkey King(左偏树+并查集)
<br />感想及学习资料详见:http://blog.youkuaiyun.com/zxy_snow/archive/2011/01/22/6158479.aspx<br /> <br />纠结了一天了,这题终于A掉了。<br /> <br />昨天看到这题,用了一堆方法之后,SF,SF,SF = =。。一搜,左偏树。神马东东,第一次听说 = =。。。<br /> <br />印了个论文,自己看。。然后自己敲,用指针。。。SF,SF,SF。。。不知道为啥。。<br /> <br />好吧。刚才搜到一个用int型当指针原创 2011-01-22 15:14:00 · 2207 阅读 · 0 评论 -
zoj 2103 Marco Popo the Traveler
<br /> <br />第二次做这种题了。<br /> <br />先判连通,然后判欧拉,再找出来符合题意的最短交换次数。。。<br /> <br />WA了数次,WA得我都快没信心了。不过还是找出来好多BUGs,改了之后,顺利AC。。。<br /> <br />先判断连通,用并查集,不连通的话直接No了。<br /> <br />BUGS之一就是,我把判有向图是否有欧拉道路用到这个上面了 = =。。。这个是无向图。无向图的话判断奇点(度为奇数)有无,有且仅有两个是欧拉通路,没有的话是欧拉回路,都可以。<原创 2011-02-11 16:39:00 · 1394 阅读 · 0 评论 -
SCU 2011 warmup contest 4 —— A B C I
<br />http://cs.scu.edu.cn/soj/contest/contest.action?cid=262<br /> <br />A题,给你一个无向图,求没有连接到1的点的个数。可以用并查集或者从1出发DFS也行,10分钟1A,嘻嘻。<br /> <br />#include <queue>#include <stack>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <iostream>原创 2011-03-05 21:43:00 · 798 阅读 · 0 评论 -
zoj 1992 || poj 1637 Sightseeing Tour
混合图的欧拉回路。以前没遇到过这种题,纠结啊。。。搜了下,发现是需要用最大流解的,隐约记得黑书上最大流有讲这个的,就去翻黑书了。黑书提供了两种算法,第一种自己模拟了下,觉得有点看不懂,觉得它书有的地方没说清楚,而且我自己模拟的结果不对 = =。。。第二种算法是网上大家经常用的,理解了下。大致就是,先将无向边定向,就是比如13,可以定它的方向为1->3,1的出度++,3的入度++即可。读入的时候如果遇到无向边,把这条边加入待建的网络中,流量为1。读入完后,然后用出度减入度得到x,如果x为奇数,肯定不存在欧拉回原创 2011-03-07 22:02:00 · 1870 阅读 · 2 评论 -
hdu 3938 Portal
题意在csj小盆友的指导下看懂了 T T 。。。我表示,这个题的题意真的很模糊。。给你力量L,求有多少条path的力量小于等于L。这个path消耗的力量是T,T是U到V上最长的边。所以说,只要求得有多少个点对使得点对之间的最大的边小于L即可。采用并查集,离线计算,原创 2011-08-12 16:49:50 · 2025 阅读 · 1 评论 -
hdu 3974 Assign the task
开始被吓到了,以为要用什么动态树什么高深的东东。。。后来想了想跟线段树蛮像。。再后来想了想,并查集就可以完全搞定了。因为这是一棵树哈,所以你在每个节点里记录任务以及这个任务的时间。查询的时候查当前节点所有的父节点(包括它本身),找最迟更新的(也就是离查询最近的)那个任务即可。原创 2011-08-26 18:53:22 · 1435 阅读 · 0 评论