![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
wwx0848
这个作者很懒,什么都没留下…
展开
-
HDU 1811 Rank of Tetris
题意: (中文) 思路: 把所有得分相同的选手放到同一个集合里面,然后对这些结合的关系进行拓扑排序,看是否可以存在一个完全的有向无环图。 1.利用并查集合并集合。 2.利用队列进行拓扑排序,如果队列里面的元素个数超过1个了,那么就说明此时信息缺失(因为这些队列里面的参赛选手都没有比它们大的了,他们之间的相互关系无法确定),如果最后入队的个数小于集合的个数,说明在图中有环,就是冲突了(因为环原创 2015-04-18 18:07:56 · 323 阅读 · 0 评论 -
HDU 1598 find the most comfortable road
题意: (中文) 思路: 由于只需要知道起点和重点之间的通路里面的最高和最低速度就可以了,那么我们按照速度从小到大利用并查集合并这条边连接的两个点为一个集合,通过并查集来判断要找的起点和重点是否连通了,如果连通就用当前的这条边速度减去添加的第一条边的速度,这个差就是此种方式的最大最小速度之差(因为是按照速度从小到大来添加的,那么当前的速度肯定是通路里面最大的)。遍历所有的情况就能找出最优的值。原创 2015-04-19 23:46:44 · 422 阅读 · 0 评论 -
HDU 1829 A Bug's Life
题意: 给你一种生物的交配信息,n个虫子,m种交配对(比如1 2,就是编号1的和编号2的交配),让你判断这里面是否有同性恋的。 思路 首先明确,如果a与b交配,b与c交配,那么a和c就应该是同性,应该在一个集合里面,如果不在,那么就会有同性恋。 那么用一个数组来记录与a交配的虫子的编号。 对于a与b交配,看a和b是否在同一个集合中,如果在,则有同性恋,否则,就把与a交配的虫子和c放入同一个原创 2015-04-15 00:10:00 · 345 阅读 · 0 评论 -
HDU 3038 How Many Answers Are Wrong
题意: 有一个长度为n的数列,一共有m句话,每句话都有a,b,c,代表在[a,b]区间内的数的和。其中有一些话是真的,有一些话是假的(与原来的事实冲突的),问给出这些话中有几句是假的。 思路: 是一道并查集的题目。 其中用uf[n]代表n的父亲,用dis[n]代表n到uf[n]之间的数字之和。 那么对于f1 = find(a), f2 = find(b). 如果f1 < f2,那么会有两原创 2015-05-04 19:42:19 · 310 阅读 · 0 评论