例题3.5 易爆物 UVa1160
来源:互联网 发布:java输入字符串语句 编辑:程序博客网 时间:2024/05/02 02:56
1.题目描述:点击打开链接
2.解题思路:本题利用并查集解决。我们把每个元素看做一个顶点,则一个简单化合物就是一条边。当整个图存在环的时候,组成环的边对应的化合物是危险的,反之则是安全的。这样,可以通过并查集来维护图的连通分量集合,每次得到一个简单化合物,检查x和y是否在同一个集合中,如果是,则拒绝,反之则接受。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;#define N 100000+10int pa[N];int findset(int x){return pa[x] != x ? pa[x] = findset(pa[x]) : x;}int main(){freopen("t.txt", "r", stdin);int x, y;while (~scanf("%d", &x)){for (int i = 0; i < N; i++)//初始化并查集pa[i] = i;int refusals = 0;while (x != -1){scanf("%d", &y);x = findset(x); y = findset(y);if (x == y)++refusals;//属于同一个集合,拒绝else pa[x] = y;//合并scanf("%d", &x);}printf("%d\n", refusals);}return 0;}
0 0
- 例题3.5 易爆物 UVa1160
- Cpp环境【Uva1160】【Vijos2806】易爆物
- LA3644(易爆物)
- 3644-易爆物
- 易爆物(X-Plosives)
- 易爆物(X-Plosives LA3644)
- LA 3644 X-Plosives 易爆物
- uva1160 ADT
- LA 3644 易爆物(并查集)
- 并查集(易爆物,LA 3644)
- 并查集uva1160
- uva1160 X-Plosives
- 例题
- 例题
- 例题
- 例题
- uva1160 - X-Plosives (并查集)
- 并查集uva1160 - X-Plosives
- 删除.git .repo .gitignore 总结
- MVC 第三章 架构了解
- PCM格式
- android 之手机客户端登陆
- 根据Request获取客户端IP
- 例题3.5 易爆物 UVa1160
- 【算法杂谈】算法竞赛中数论相关
- 浅谈JAVA的线程安全与性能之间的权衡
- c++Primer,十一,泛型算法
- jQuery笔记
- 二叉树转化成双向链表
- 2015年阿里巴巴校招研发工程师编程题
- java判断生日字符串是否合法
- 数据结构与算法(C语言)<绪论>