BZOJ1854 [Scoi2010]游戏
来源:互联网 发布:计算机病毒预防软件 编辑:程序博客网 时间:2024/05/18 00:33
题意:中文题,懒得写题意
分析:
神题,神做法。
想了半天不会,只能无耻地搜题解了。
这道题是用并查集来做。
将武器看成边,连接两个属性值,如果一个连通块是一颗树,那么肯定有一个属性值不能得到,如果一个x个点的连通块边数>=x,说明这个连通块里所有属性值都能得到。
涉及到连通块,我们可以用并查集来维护。
如果当前武器的两个属性值不在一个集合,我们就将属性值小的所在的集合合并到属性值大的所在的集合,这样,如果一个连通块是一棵树,肯定是树根不能得到。
#include <cstdio>#include <algorithm>int n,x,y,f[10005],vis[10005];int fnd(int x) {return f[x] == x ? x : f[x] = fnd(f[x]);}int main() {scanf("%d", &n);for(int i = 1; i <= 10000; i++) f[i] = i;for(int i = 1; i <= n; i++) {scanf("%d%d", &x, &y);int u = fnd(x), v = fnd(y);if(u != v) {if(u > v) std::swap(u, v);f[u] = v, vis[u] = 1;} else vis[u] = 1;}for(int i = 1; i <= 10001; i++) if(!vis[i]) {printf("%d", i-1); return 0;}return 0;}
1 0
- bzoj1854 [Scoi2010]游戏
- bzoj1854[Scoi2010]游戏
- bzoj1854[Scoi2010]游戏
- BZOJ1854 [Scoi2010]游戏
- BZOJ1854: [Scoi2010]游戏
- 【bzoj1854】[Scoi2010]游戏
- BZOJ1854: [Scoi2010]游戏
- bzoj1854[Scoi2010] 游戏
- 【bzoj1854】[Scoi2010]游戏
- bzoj1854: [Scoi2010]游戏
- 【bzoj1854】[Scoi2010]游戏
- [bzoj1854][Scoi2010]游戏
- bzoj1854 [Scoi2010]游戏
- bzoj1854 [Scoi2010]游戏
- BZOJ1854: [Scoi2010]游戏
- BZOJ1854: [Scoi2010]游戏
- [BZOJ1854][Scoi2010]游戏
- 【bzoj1854】 SCOI2010游戏 二分图匹配
- HDU 1445 Ride to School 贪心
- Python中常用的正则表达式处理函数
- Java版抓取网站妹子图片
- dedecms tag 标签调用方法(详细介绍)
- TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
- BZOJ1854 [Scoi2010]游戏
- HDU 1050 Moving Tables 求最大重复次数
- JavaScript中Element与Node的区别,children与childNodes的区别
- hdu 1052 田忌赛马(贪心)
- 初始JSP表达式语言-EL
- 1002. 写出这个数 (20)
- AngularJS 深入理解 $scope
- 第六天:串口通信概念、原理
- 对封装、抽象、继承、多态的理解?(java四大特性)