Codeforces 745C 并查集+贪心
来源:互联网 发布:网络信息员岗位职责 编辑:程序博客网 时间:2024/05/07 21:14
点击打开链接
//题意:n个定点 m条边(无重边),有k个顶点之间不能有路径存在,问最多能添加多少条边时,仍然满足情况
//因为k个顶点之间不能有路径存在 则最后图中剩下的联通分量个数为k
//显然最后组成的最大的哪一个联通分量,点数要尽可能的多,其余有限制的联通分量里面的边数是size*(size-1)/2
#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll,ll> P;const int inf=1e9;const int N=2e3+20;const int M=2e3+20;int n,m,k,c[N];int fa[N],size[N],rank[N];// int find(int x){if(fa[x]!=x){fa[x]=find(fa[x]);}return fa[x];}void Union(int fx,int fy){fa[fx]=fy;size[fy]+=size[fx];if(rank[fx])rank[fy]=1;//该联通分量包含元素c[i] }int main(){while(cin>>n>>m>>k){for(int i=1;i<=n;i++){fa[i]=i;size[i]=1;rank[i]=0;} for(int i=1;i<=k;i++){scanf("%d",&c[k]);rank[c[k]]=1;}for(int i=0;i<m;i++){int u,v;scanf("%d%d",&u,&v);if(find(u)!=find(v)){Union(find(u),find(v));}}int ans=0,cnt=0,num=0;bool flag=false;for(int i=1;i<=n;i++){if(fa[i]==i){if(rank[i]==0)cnt+=size[i];//这些没限制的可以合成一个联通分量 else{num=max(num,size[i]);//有限制的 取一个最大的即可于无限制的组合 ans+=(size[i]*(size[i]-1))/2; // }}}ans-=num*(num-1)/2;cnt+=num;//找到最后最大的联通分类能包含多少个点 ans+=cnt*(cnt-1)/2-m;cout<<ans<<endl;}return 0;}
0 0
- Codeforces 745C 并查集+贪心
- codeforces 731C 并查集+贪心
- 【并查集+贪心】 CodeForces
- CodeForces 731 C.Socks(贪心+并查集)
- Codeforces 854C Planning【贪心+并查集】
- Codeforces 366D 贪心+并查集
- Codeforces Round #376 (Div. 2) C. Socks 并查集+贪心、图论
- Codeforces Round #385 (Div. 2)C. Hongcow Builds A Nation【并查集+贪心】好题~
- Codeforces Round #376 (Div. 2) C. Socks —— 并查集 + 贪心
- Codeforces Round #433 (Div. 2) Planning (贪心+并查集)
- 【贪心+并查集】Codeforces 853A Planning
- CodeForces 218C 并查集
- 【CodeForces】445C Civilization 并查集
- codeforces 650C (并查集)
- codeforces 722C (并查集)
- Codeforces 731C 并查集
- CodeForces - 731C Socks (并查集)
- codeforces 731C (并查集 水)
- Visualizing GoogLeNet Classes[译]
- 设计模式-行为设计模式:观察者模式 Observer
- javascript 20161218
- (ZT)设置wifi热点的bat脚本
- MFC的资源切换AFX_MANAGE_STATE (转载http://www.cnblogs.com/ntrgx/archive/2010/11/14/1877199.html)
- Codeforces 745C 并查集+贪心
- Spring MVC的一些关于请求的注解用法详解
- JSP笔记乱(二)
- 20161218
- [Java]java中Map和List初始化的两种方法
- 漫谈HTML中的ul
- 阿里云人工智能科学家闵万里犀利点评:现在的人工智能有点过热 | 2016 云栖大会
- DataTable详解
- 算法导论学习日记(1)--插入排序