Union-Find Set
klchen0112
这个作者很懒,什么都没留下…
展开
-
A Bug's Life POJ - 2492
分男女加上N即可#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define MAX_N 5000using namespace std;int Unions[MAX_N];int N,Q,X,Y;int Find(int i ) ...原创 2019-03-10 18:06:23 · 162 阅读 · 0 评论 -
True Liars POJ - 1417
权值并查集之后就是一个简单的背包之后逆向输出,显然若当前唯一则前置也必定唯一 #include&lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;cstdlib&gt; #in原创 2019-03-11 10:58:13 · 293 阅读 · 0 评论 -
The Suspects POJ - 1611
Union后最后处理跟为0即可 #include &lt;stdio.h&gt; #define MAX_LENGTH 30005 struct Union { int to; int rank; }; Union Unions[MAX_LENGTH]; void init_QucikUnion(int length){ for (int i ...原创 2019-03-11 17:32:49 · 158 阅读 · 0 评论 -
The Suspects POJ - 1611
Union后最后处理跟为0即可#include &lt;stdio.h&gt;#define MAX_LENGTH 30005struct Union { int to; int rank;};Union Unions[MAX_LENGTH];void init_QucikUnion(int length){ for (int i = 0;i&lt;...原创 2019-03-11 17:33:01 · 99 阅读 · 0 评论 -
Supermarket POJ - 1456
贪心选择价值大保质期短的,选择最晚的一天#include&lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cstdlib&gt;#include &lt;vector&a原创 2019-03-11 17:33:25 · 171 阅读 · 0 评论 -
Rochambeau POJ - 2912
N只有500枚举聪明人,用权值并查集维护#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;#include &lt;cstring&gt;#define MAX_N 50010#define sci(num) scanf("%d",&原创 2019-03-11 17:33:57 · 214 阅读 · 0 评论 -
食物链 POJ - 1182
定义R = 0 与其父亲为同类 R = 1 被父亲吃 R = 2 吃父亲(x,y)(y,z)(x,z)000011022101112120202210221注意这样的转移即可 #include &lt;iostream&gt; #include &lt;cstdio&gt; #...原创 2019-03-11 17:34:27 · 126 阅读 · 0 评论 -
Parity game POJ - 1733
权值并查集(x,y)(y,z)(x,z)000011101110显然是异或关系#include&amp;lt;cstdio&amp;gt;#include &amp;lt;cstring&amp;gt;#include &amp;lt;iostream&amp;gt;#include &amp;lt;algorithm&原创 2019-03-11 17:34:57 · 266 阅读 · 3 评论 -
Navigation Nightmare POJ - 1984
维护东西南北的差值,相当于维护两个并查集#include &amp;lt;iostream&amp;gt;#include &amp;lt;cstdio&amp;gt;#include &amp;lt;algorithm&amp;gt;#include &amp;lt;cstring&amp;gt;#define MAX_N 50010#define sci(num原创 2019-03-13 16:30:44 · 262 阅读 · 1 评论 -
Is It A Tree? POJ - 1308
判断边数是否是点数-1 还有特例#include &lt;cstdio&gt;#include &lt;cstring&gt;using namespace std;#define sci(num) scanf("%d",&amp;num)#define mem(a,b) memset(a,b,sizeof a)const int MAX_N = 1000005;int F[M原创 2019-03-13 16:35:37 · 115 阅读 · 0 评论 -
How Many Tables HDU - 1213
每次在不同集合相连减一#include &lt;bits/stdc++.h&gt; using namespace std; #define MAX_LENGTH 1005 int Unions[MAX_LENGTH]; void init_QucikUnion(int length){ for (int i = 0;i&lt;=length;i++){ Unions...原创 2019-03-13 16:36:47 · 79 阅读 · 0 评论 -
小希的迷宫 HDU - 1272
判空是否成树 #include &lt;bits/stdc++.h&gt; #define MAX_N 100010 #define INF 1&lt;&lt;28 using namespace std; bool cnt[MAX_N]; int edge,V; int u,v; int main() { while(scanf("%d%d",&amp;u,&原创 2019-03-13 16:38:26 · 176 阅读 · 0 评论 -
Wireless Network POJ - 2236
维护是否在一个集合,修护距离即可#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;vector&gt;using namespace std;#define mem(a,b) memset(a,b,sizeof(a))struct node{ i原创 2019-03-11 10:56:29 · 145 阅读 · 0 评论