uva 1160 - X-Plosives(并查集)
2014-08-23 13:53
337 查看
题目链接:uva 1160 - X-Plosives
题目大意:每一种化合物由两种简单的元素组成,现在有n种化合物要装车,如果出现说有k种化合物刚好由k种元组组成,就会发生化学发应。工人在每次装车的时候会检查是否有可能发生发应,有的话将放弃装车。问说最后有几个化合物没有装车。
解题思路:并查集,将每个元组视为一个节点,一种化合物视为边,如果新增一条边形成环则不能加入,统计没有添加的边数即可。
题目大意:每一种化合物由两种简单的元素组成,现在有n种化合物要装车,如果出现说有k种化合物刚好由k种元组组成,就会发生化学发应。工人在每次装车的时候会检查是否有可能发生发应,有的话将放弃装车。问说最后有几个化合物没有装车。
解题思路:并查集,将每个元组视为一个节点,一种化合物视为边,如果新增一条边形成环则不能加入,统计没有添加的边数即可。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1e5; int f[maxn+5]; int getfar(int x) { return x == f[x] ? x : f[x] = getfar(f[x]); } int main () { int x, y; while (scanf("%d", &x) == 1) { int ret = 0; for (int i = 0; i <= maxn; i++) f[i] = i; while (x != -1) { scanf("%d", &y); x = getfar(x); y = getfar(y); if (x == y) ret++; else f[y] = x; scanf("%d", &x); } printf("%d\n", ret); } return 0; }
相关文章推荐
- uva 1160 X-Plosives (并查集)
- UVA 1160 - X-Plosives(并查集)
- uva1160 - X-Plosives (并查集)
- UVA-1160 - X-Plosives(并查集)
- uva 1160 - X-Plosives(并查集)
- uva 1160 X-Plosives(并查集:基础运用)
- Uva 1160 X-Plosives ——并查集
- UVA 1160 X-Plosives【并查集】
- UVa 1160 X-Plosives (并查集)
- UVa 1160 X-Plosives(并查集)
- 并查集uva1160 - X-Plosives
- UVA 1160 X-Plosives(并查集)
- uva 1160 - X-Plosives(并查集)
- UVA 1160 - X-Plosives(并查集)
- UVA 1160 X-Plosives(并查集)
- UVA 1160 - X-Plosives 即LA3644 并查集判断是否存在环
- UVALive(LA) 3644 X-Plosives (并查集)
- UVA 1160 X-Plosives
- UVA 1160 X-Plosives
- X-Plosives - UVa 并查集