745 C. Hongcow Builds A Nation codeforces (并查集)
2016-12-23 23:22
375 查看
#include<bits/stdc++.h> using namespace std; bool visit[1005]; int pre[1005],num; struct node { int flag; int num1; int num2; }arr[1005]; int find(int x) { int y=x; while(y!=pre[y]) { y=pre[y]; } int temp; while(pre[x]!=y) { temp=pre[x]; pre[x]=y; x=temp; } return y; } bool cmp(node x,node y) { if(x.num1>y.num1)return true; return false; } int main() { int n,m,k,x,y; cin>>n>>m>>k; for(int i=1;i<=k;i++) { cin>>x; visit[x]=1; } for(int i=1;i<=n;i++) pre[i]=i; memset(arr,0,sizeof(arr)); while(m--) { cin>>x>>y; if(x>y) swap(x,y); int xx=find(x),yy=find(y); if(xx!=yy) { pre[yy]=xx; arr[xx].num2+=arr[yy].num2+1; } else { arr[xx].num2++; } } int num=0; for(int i=1;i<=n;i++) { x=find(i); arr[x].num1++; if(arr[x].flag==0) arr[x].flag=visit[i]; } sort(arr+1,arr+1+n,cmp); int i,sum=0,sum1=0; for(i=1;i<=n;i++) { if(arr[i].flag) break; } for(int j=1;j<=i-1;j++) { arr[i].num1+=arr[j].num1;arr[i].num2+=arr[j].num2; arr[j].num1=0; } for(int j=i+1;j<=n;j++) { if(arr[j].num1==0) break; if(!arr[j].flag) { arr[i].num1+=arr[j].num1;arr[i].num2+=arr[j].num2; arr[j].num1=0; } } for(int j=1;j<=n;j++) { if(arr[j].num1==0) continue; sum+=arr[j].num1*(arr[j].num1-1)/2-arr[j].num2; } cout<<sum<<endl; return 0; }
相关文章推荐
- Codeforces Round #385 (Div. 2)C. Hongcow Builds A Nation【并查集+贪心】好题~
- Codeforces 745C - Hongcow Builds A Nation 并查集乱搞,注意路径压缩
- Codeforces Round #385 (Div. 2) -- C. Hongcow Builds A Nation(并查集)
- 745 A. Hongcow Learns the Cyclic Shift codeforces
- CF745C_Hongcow Builds A Nation(并查集+贪心)
- 745 B. Hongcow Solves A Puzzle codeforces
- Codeforces Round #385 (Div. 2) C. Hongcow Builds A Nation 并查集+贪心+组合学、图论、dfs
- Hongcow Builds A Nation ___codeforces 744A
- 【26.42%】【codeforces 745C】Hongcow Builds A Nation
- C. Hongcow Builds A Nation
- Hongcow Learns the Cyclic Shift CodeForces - 745A
- Codeforces Round #385 (Div. 1)A. Hongcow Builds A Nation
- Hongcow Builds A Nation ___codeforces 744A
- Mahmoud and Ehab and the bipartiteness CodeForces - 862B 并查集
- Educational Codeforces Round 36 (Rated for Div. 2) F. Imbalance Value of a Tree(并查集)
- codeforces Vessels(并查集)
- codeforces B. Cow Program (记忆化搜索)
- Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 开关--并查集
- Codeforces Round 650E Clockwork Bomb(并查集)
- Codeforces Round #363 (Div. 2)D. Fix a Tree(并查集)