并查集
杋楼
这个作者很懒,什么都没留下…
展开
-
poj 1733 Parity game(离散化+并查集)
题解思路: 与poj2492 - A Bug's Life相同; 两类,一个odd 一个even, 要开一个区间a-- or b++ 比2492相比多了一个离散化; 没有相矛盾的情况 输出m odd even赋值反了 wa了半天.. #include<cstdio> #include<iostream> #include<cstring> #i...转载 2019-02-17 09:26:57 · 149 阅读 · 0 评论 -
poj 2912 Rochambeau (带权并查集)
题解思路: 将所有条件存起来 枚举每个点是否为裁判,枚举时对涉及到此人的回合不进行操作,看是否出现矛盾,记录出现矛盾的回合。 如果仅有一点未出现矛盾,则此点为裁判,判断回合为max(出现矛盾的回合) 如果都出现矛盾 为Impossible的情况 其余为不可确认的情况 #include<cstdio> #include<iostream> #include&...转载 2019-02-17 15:21:44 · 141 阅读 · 0 评论 -
poj 1984 Navigation Nightmare (带权并查集)
题解思路: 带权并查集只不过维护2个量; 在线查询十分恶心.. 需要先把查询 和答案全记录下来,最后按pos输出; #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<queu...转载 2019-02-18 09:45:19 · 133 阅读 · 0 评论 -
sdut 4408 这真的是签到题
Problem Description 给你n个整数,a1,a2,a3,......,an。每个整数范围1到1e6。选取任意的i(1<=i<=n)和j(1<=j<=n)如果gcd(ai,aj)>1,ai和aj为一组,如果ai和aj为一组,ai和ak为一组,那么ai,aj,ak为一组,求这n个整数中,最后有多少个组。 Input 输入一个T表示组数(T<...转载 2019-02-28 19:49:41 · 182 阅读 · 0 评论 -
POJ 1417 True Liars (并查集+dp+路径输出)
题解思路: 通过题意可以推出如果回答为yes,则a b同族,no为不同族; 并查集维护,可以知道有几棵树; 用cnt[i][1 / 0]表示每棵树里2类人各有多少; 看能否拼出为一个解; dp[i][j]表示前i棵树,可以拼成j个人的个数, 转移方程 dp[i][j]=dp[i-1][j-cnt[i][0]],dp[i-1][j-cnt[i][1]])注意这里是俩类人力必选一类; ...转载 2019-02-20 08:39:45 · 153 阅读 · 0 评论