
并查集
Napoleon2004
这个作者很懒,什么都没留下…
展开
-
HDU 1272 小希的迷宫
#include<bits/stdc++.h>using namespace std;const int maxx=100010;int i,a,b,q,p,l,t,ok,fat[maxx],c[maxx];int find(int x){ if(fat[x]!=x)fat[x]=find(fat[x]); return fat[x];}int main()...原创 2018-03-31 13:49:43 · 131 阅读 · 0 评论 -
HDU 1232 畅通工程
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;...原创 2018-04-01 19:48:28 · 109 阅读 · 0 评论 -
一本通训练指导教程P414 团伙
#include<bits/stdc++.h>using namespace std;int ans,fat[1010],f[1010][1010];int find(int x){ if(fat[x]!=x)return fat[x]=find(fat[x]); return x;}void unionn(int a,int b){ int q=find(a),p=f...原创 2018-04-06 10:08:37 · 370 阅读 · 0 评论 -
一本通训练指导教程P416 打击犯罪
#include<bits/stdc++.h>using namespace std;int n,i,j,b,s,fat[1010],a[1010][1010];int find(int x){ if(x!=fat[x])return fat[x]=find(fat[x]); return x;}int main(){ scanf("%d",&n); for(...原创 2018-04-06 10:09:41 · 295 阅读 · 0 评论 -
一本通训练指导教程P419 搭配购买
#include<bits/stdc++.h>using namespace std;const int M=10010;int a[M],b[M],c[M],d[M],p[M],fat[M],s[M];int find(int x){ if(fat[x]!=x)return fat[x]=find(fat[x]); return x;}int main(){ int...原创 2018-04-06 10:11:27 · 200 阅读 · 0 评论 -
一本通训练指导教程P425 亲戚
#include<bits/stdc++.h>using namespace std;int n,m,i,x,y,q,p;int fat[100010],num[100010];char c;int find(int x){ if(x!=fat[x])return fat[x]=find(fat[x]); return x;}int main(){ scanf("%...原创 2018-04-06 10:13:58 · 208 阅读 · 0 评论 -
UVA 3644 X-Plosives
#include<bits/stdc++.h>using namespace std;int fat[100010];int find(int x){ if(fat[x]==0)return x; return fat[x]=find(fat[x]);}int main(){ int x,y,q,p,ans; while(scanf("%d",&x)!=EOF...原创 2018-05-23 22:30:04 · 140 阅读 · 0 评论 -
UVA 3027 Corporative Network
#include<bits/stdc++.h>using namespace std;struct node{ int fat,dis;}a[20010];int find(int x){ if(a[x].fat==x)return x; int t=find(a[x].fat); a[x].dis+=a[a[x].fat].dis; a[x].fat=t; ret...原创 2018-05-23 22:31:27 · 165 阅读 · 0 评论