并查集
wsxsd94
这个作者很懒,什么都没留下…
展开
-
Hdu1198 - Farm Irrigation - 并查集
#include #include int m,n; int p[3000]; struct { int up,down,left,right; }map[55][55]; int find(int n) { return p[n]==n?p[n]:find(p[n]); } int main() { int i,j; char item; while(sc原创 2014-07-27 14:56:20 · 394 阅读 · 0 评论 -
POJ1733 - Parity game - 并查集
带权并查集一道不错的题,要用到离散化原创 2014-08-15 14:47:53 · 636 阅读 · 0 评论 -
ZOJ3659 - Conquer a New Region - 并查集+贪心算法
zhu一个路径上最小的重量才是这条路径的重量原创 2014-08-14 18:14:34 · 499 阅读 · 0 评论 -
Hdu2473 - Junk-Mail Filter - 并查集
这道题一开始本来想用直接改变p[i],使得p[i]=i,发现虽然路径压缩过了,但是实际上i下面所连接的点并没有压缩到i原本的根上,如图 而实际上应该是 所以就需要让1这个点依旧存在于这棵树里边,另外用一个变量来表示1这个点已经被删除掉 实际上右边的点一开始也是由sham构成的树,因为初始化的sham数组都为本身,只有当删除过某个点(图中为删除1原创 2014-08-14 18:35:04 · 446 阅读 · 0 评论 -
POJ1962 - Corporative Network - 并查集
只有两个点距离的时候才%1000,被这个坑了好久原创 2014-08-12 19:15:20 · 481 阅读 · 0 评论 -
POJ1182 - 食物链 - 并查集
这道题总共分三个级别,A级别,B级别,C原创 2014-08-13 12:28:27 · 510 阅读 · 0 评论 -
Hdu1232 - 畅通工程 - 并查集
#include int p[100005]; int find(int n) { if(p[n]!=n) { p[n]=find(p[n]); } return p[n]; } int main() { int n,m,count,i,a,b; while(scanf("%d",&n)!=EOF) { if(n==0) { break; } scanf("原创 2014-07-27 14:47:25 · 423 阅读 · 0 评论 -
Hdu1856 - More is better - 并查集
#include int p[100005]; int fr[100005]; int find(int n) { return p[n]=p[n]==n?p[n]:find(p[n]); } int main() { int t,i,a,b; while(scanf("%d",&t)!=EOF) { for(i=1;i<=100000;i++) { p[i]=i; f原创 2014-07-27 14:54:43 · 426 阅读 · 0 评论 -
Hdu3172 - Virtual Friends - 并查集
#include #include #include using namespace std; #define N 30 #define M 100005 int n; int p[M]; int t[M]; mapMap; int find(int x) { if(p[x]!= x) { int fa=p[x]; p[x]=find(f原创 2014-08-03 16:01:34 · 482 阅读 · 0 评论 -
Hdu1272 - 小希的迷宫 - 并查集
#include #include int mark[100005]; int p[100005]; int find(int x) { while(p[x]!=x) { x=p[x]; } return p[x]; } int main() { int a,b,i; while(scanf("%d%d",&a,&b)!=EOF)原创 2014-07-27 14:52:25 · 432 阅读 · 0 评论 -
Hdu1213 - How Many Tables - 并查集
#include #include int p[10000],a,ap[10000],b,bp[10000],m,c,n; int find(int n) { if(p[n]!=n) { p[n]=find(p[n]); } return p[n]; } int main() { int i,k,t; scanf("%d",&t); for(k=0;k<t;k++) { s原创 2014-07-27 15:00:23 · 387 阅读 · 0 评论 -
POJ - Colored Sticks - 并查集+字典树
字典树+并查集一道比较不错的题,欧拉图,值得一做原创 2014-08-16 14:01:20 · 836 阅读 · 0 评论