Codeforces 278C Learning Languages(并查集)
来源:互联网 发布:周立功单片机教程 编辑:程序博客网 时间:2024/06/05 06:04
题意抽象出来就是求联通块的个数吧,然后添加最少边使图联通。
注意所有人都不会任何语言的时候,答案是n而不是n-1。
#include<algorithm>#include<iostream>#include<cstring>#include<fstream>#include<sstream>#include<vector>#include<string>#include<cstdio>#include<bitset>#include<queue>#include<stack>#include<cmath>#include<map>#include<set>#define FF(i, a, b) for(int i=a; i<b; i++)#define FD(i, a, b) for(int i=a; i>=b; i--)#define REP(i, n) for(int i=0; i<n; i++)#define CLR(a, b) memset(a, b, sizeof(a))#define debug puts("**debug**")#define LL long long#define PB push_back#define MP make_pair#define eps 1e-8using namespace std;const int maxn = 111;int n, m, k, x, fa[maxn];set<int> lg[maxn];set<int> :: iterator it;int findset(int x) { return x == fa[x] ? x : fa[x] = findset(fa[x]); }bool check(int i, int j){ for(it=lg[i].begin(); it!=lg[i].end(); it++) if(lg[j].find(*it) != lg[j].end()) return true; return false;}int main(){ scanf("%d%d", &n, &m); int cnt = 0; FF(i, 1, n+1) { fa[i] = i; scanf("%d", &k); if(k == 0) cnt++; while(k--) { scanf("%d", &x); lg[i].insert(x); } } if(cnt == n) { printf("%d\n", n); return 0; } FF(i, 1, n+1) FF(j, i+1, n+1) if(check(i, j)) { int x = findset(i), y = findset(j); if(x != y) fa[x] = y; } int ans = 0; FF(i, 1, n+1) if(fa[i] == i) ans++; printf("%d\n", ans-1); return 0;}
- Codeforces 278C Learning Languages(并查集)
- codeforces 278C. Learning Languages(并查集)
- Codeforces 278C Learning Languages【并查集】水题
- codeforce C. Learning Languages(并查集)
- CodeForces 277A Learning Languages 并查集
- CodeForces 277A Learning Languages (并查集)
- CodeForces 277A Learning Languages (并查集)
- Codeforces Round #170 (Div. 2)---C. Learning Languages(并查集)
- Codeforces 278C. Learning Languages
- Learning Languages (并查集)
- Codeforces 170C Learning Languages (并查集求连通分支)
- bzoj 3296: [USACO2011 Open] Learning Languages(并查集)
- Codeforces 278C. Learning Languages 图的遍历
- CodeForces-Learning Languages
- C. Learning Languages
- [Codeforces] 277A - Learning Languages
- codeforces 277 A Learning Languages
- CodeForces 218C 并查集
- Java多线程之ScheduledExecutorService
- delete 大表后kill session是否会recover?
- iOS中文件相关
- 顺序队列基本运算(实验题3.3)
- C++输入输出总结
- Codeforces 278C Learning Languages(并查集)
- 浅谈程序猿的职业规划,看你如何决定自己的未来吧。
- js数组的操作
- Cstring与double char 的转换
- 【Android】利用服务Service创建标题栏通知
- MyEclipse6.5+SVN配置与使用
- nginx push模块
- 突破安全狗的一些记录
- ganglia结构和安装