数据结构_并查集
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
POJ【2236】Wireless Network
Wireless NetworkTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 20631 Accepted: 8679DescriptionAn earthquake takes place in Southeast Asia. The ACM (Asia原创 2016-01-25 09:37:56 · 237 阅读 · 0 评论 -
Codeforces Round #360 (Div. 1)
A NP-Hard Problem 一道染色的题目,跟上次写过的一道现场赛的题目很像,简单处理一下即可。#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5+100;int原创 2016-11-20 11:50:11 · 451 阅读 · 0 评论 -
HDU 5441 Travel(2015 ACM/ICPC Asia Regional Changchun Online)
题目分析 这道理第一感觉就是暴力,但是数据量实在太大,但是我们可以有策略的暴力,这道题我的方法就是先排序再暴力,首先我们可以对于距离进行排序,然后我们离线处理q次询问,同样的方法对于q此询问的距离进行排序(注意存标号)。然后用并查集处理即可,即可方法见代码。#include <cstdio>#include <vector>#include <cstring>#include <iost原创 2016-10-20 15:57:21 · 192 阅读 · 0 评论 -
POJ 1182 食物链(种类并查集)
题目分析 这道题主要有三种关系,就是A吃B,A被B吃,还有就是A与B是相同类型的。因此我们可以用一个数组re[]来表示与父根之间的关系,当值为0时这个表明当前该动物与父根动物是同一类型,如果为1那么该动物被父根动物吃,如果为2表明该动物可以吃父根动物,因此依赖关系就建立起来了。 对于每次询问如果这2个动物在一个并查集中,那么只需要判断一下即可,如果不在同一个并查集中那么需要建立关系。具体开原创 2016-10-26 13:10:12 · 439 阅读 · 0 评论 -
HDU 5723 Abandoned country
题目分析 题目不难,但是注意的点比较多,首先就是写最小生成树算法,这个很简单,我也不用多说了,我要说的就是求期望的问题,我们可以这样求,对于每条边来说,它用到的次数等于这条边左边节点数乘以右边节点数,其实就是乘法原理。然后我们将用到的次数再乘以这条边的权值其实就是这条边对期望所做的贡献,那么在递归的工程中我们可以求出这个值,然后再将这个值除以n*(n-1)/2就可以得到期望了。#include原创 2016-08-05 14:37:47 · 374 阅读 · 0 评论 -
HDU 1829 A Bug's Life(基础种类并查集)
题目分析 基础的种类并查集,一直想写,但是苦于不会,今天找了个简单的练手。种类并查集除了需要维护fa[]数组,同时还要维护关系数组,这里面只有2种关系,一种是互斥,一种是不互斥,这样已经很明显了,我们用re数组中的数字来表示与根的关系,为0是与根互斥,为1与根不互斥,这样我们还需要在状态压缩的时候同样维护re数组,这样就做出来了。#include <cstdio>#include <cstr原创 2016-07-06 20:11:15 · 285 阅读 · 0 评论 -
POJ 1988 Cube Stacking
题目分析 典型的带权并查集,这道题有2个操作,一个是将带a的那一堆石头移到带b的那一堆石头上面,另一个是询问a号石头下面有多少石头。这里我定义了3个数组,fa用于查父节点,he查编号为i的石头下面有多少石头,sum表示以a为根节点的石头堆中有多少石头。#include <cstdio>#include <cstring>#include <iostream>#include <algor原创 2016-07-13 15:10:23 · 438 阅读 · 0 评论 -
POJ【1611】The Suspects
The SuspectsTime Limit: 1000MS Memory Limit: 20000KTotal Submissions: 29618 Accepted: 14412DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumoni原创 2016-02-02 09:56:11 · 268 阅读 · 0 评论 -
HDU【3038】How Many Answers Are Wrong
How Many Answers Are WrongTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4491 Accepted Submission(s): 1720Problem DescriptionT原创 2016-02-13 10:58:55 · 236 阅读 · 0 评论 -
HDU【2812】Building Block
Building BlockTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4269 Accepted Submission(s): 1334Problem DescriptionJohn are playin原创 2016-01-23 11:26:12 · 274 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2)
A. Arpa’s hard exam and Mehrdad’s naive cheat 找规律即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int main(){ int n; while(scanf("%d", &n)原创 2016-12-16 12:21:26 · 286 阅读 · 0 评论