Description

lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有\(2\)个属性,这些属性的值用\([1,10000]\)之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从\(1\)开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为\(1\)的装备攻击boss,然后只能使用某个属性值为\(2\)的装备攻击boss,然后只能使用某个属性值为\(3\)的装备攻击boss……以此类推。 现在lxhgww想知道他最多能连续攻击boss多少次?

Input

输入的第一行是一个整数N,表示lxhgww拥有N种装备 接下来\(N\)行,是对这N种装备的描述,每行\(2\)个数字,表示第i种装备的\(2\)个属性值

Output

输出一行,包括1个数字,表示lxhgww最多能连续攻击的次数。

Sample Input

3

1 2

3 2

4 5

Sample Output

2

HINT

对于\(30\%\)的数据,保证\(N \le1000\)

对于\(100\%\)的数据,保证\(N \le1000000\)

这道题很明显可以用二分图最大匹配来跑。每件武器像其两个属性值连边,依次顺序枚举属性值。若某个属性值无法进行匹配,则输出答案即可。

但是这题有个更优美的算法:并查集。

这个做法是在HZWER的博客里面看到的:每个装备我们把它想象成一条边,两个属性值把它想象成这条边连接的两个点。

那么,如果一个联通块中有\(n\)个点,无环,说明只有\(n-1\)条边,\(n-1\)件装备,无法把整个联通块的属性值都选择。由于我们要通过尽可能多的关卡,我们肯定就不选属性值最大的那个点。

如果这个联通块中有环,边数\(E\)一定会$ \ge \(点数\)V$,说明这个所有点都可以被选择到。

这些我们都可以用并查集来维护。

#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
#define maxn 1000010
int father[maxn],n;
bool vis[maxn];
inline int find(int a)
{
if (father[a] != a) father[a] = find(father[a]);
return father[a];
}
inline void Union(int a,int b)
{
if (a > b)
swap(a,b);
vis[a] = true;
father[a] = b;
}
int main()
{
scanf("%d",&n);
int i,a,b;
for (i = 1;i<=n+1;++i)
father[i] = i;
for (i = 1;i<=n;++i)
{
scanf("%d %d",&a,&b);
int r1 = find(a),r2 = find(b);
if (r1 == r2) vis[r1] = true;
else Union(r1,r2);
}
for (i = 1;i<=n+1;++i)
if (!vis[i])
{printf("%d",i-1);break;}
return 0;
}

BZOJ 1854 游戏的更多相关文章

  1. bzoj 1854 游戏 二分图匹配 || 并查集

    题目链接 Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的 ...

  2. BZOJ 1854 游戏(二分图匹配或并查集)

    此题的二分图匹配做法很容易想,就是把属性当做s集,武器当做t集,如果该武器拥有该武器则连一条边. 那么答案就是求该二分图的最大前i个匹配.将匈牙利算法改一改,当前找不到增广路就break. 但是过这个 ...

  3. bzoj 5288 游戏

    bzoj 5288 游戏 显然从点 \(x\) 出发,能到达的点是包含 \(x\) 的一段区间.用 \(L,R\) 两个数组记录每个点对应的区间端点. 如果能预处理出 \(L,R\) ,询问显然可以 ...

  4. BZOJ 1854 【Scoi2010】 游戏

    Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性 ...

  5. BZOJ 1854: [Scoi2010]游戏 无向图判环

    题目链接: 题目 1854: [Scoi2010]游戏 Time Limit: 5 Sec Memory Limit: 162 MB 问题描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装 ...

  6. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )

    匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...

  7. BZOJ 1854: [Scoi2010]游戏 并查集

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2672  Solved: 958[Submit][Status][ ...

  8. AC日记——[SCOI2010]游戏 bzoj 1854

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4938  Solved: 1948[Submit][Status] ...

  9. ●BZOJ 1854 [Scoi2010]游戏

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1854 题解: 并查集(还可以用匈牙利算法进行单路增广的二分图匹配) 把每个武器看成是一条边, ...

随机推荐

  1. COCOS2D-X 精灵创建随笔

    CCSprite类中创建Sprite的方法都是静态的: static CCSprite* create ( )  创建一个无图片显示的精灵,可随后用 setTexture 方法设置显示图片 stati ...

  2. LabVIEW的错误簇以及错误处理函数

    我们可以在LabVIEW的Modern>>Array, Matrix & Cluster控件面板找到表示错误簇数据类型的错误输入(Error In)以及错误输出(Error Out ...

  3. Python获取web页面信息

    import sys, urllib2 # req = urllib2.Request(sys.argv[1]) req = urllib2.Request('http://www.sina.com. ...

  4. linux下安装memcached过程

    前一次已经安装过memcached,没有做记录,太久没有操作了也没有记录有点生疏,做一下笔记,已背后用. 下载文件                            下载memcached服务端, ...

  5. javascript 和 jquery 语法上的一些区别

    jQuery 能大大简化 Javascript 程序的编写,我最近花时间了解了一下 jQuery,把我上手过程中的笔记和大家分享出来,希望对大家有所帮助.要使用 jQuery,首先要在 HTML 代码 ...

  6. UML图基本类型

    use case model用例模型 analysiss model分析模型 design model设计模型 implementation model实现模型 deployment model部署模 ...

  7. struts2-ognl 访问静态方法

    在内网基本上还真没看到有哥们发现这个问题, 在google上有的哥们说 这是 v 2.3.20的一个bug, 有的人说在该版本中已经不建议通过ognl方式访问静态方法了. 对于这两种说法, 我比较赞同 ...

  8. SQL输出矩阵

    数据库环境:SQL SERVER2008R2 需求:用SQL实现如下2个图中的矩阵.            图1和图2都是行列转换的另一个变形,下面直接贴上SQL脚本. 图1的SQL实现 /*利用系统 ...

  9. Windows phone 之样式的关联

    建议大家做界面要用Blend. 做过web的都知道DIV+CSS,给页面元素关联样式有三种方式: 1.内联样式表:就是在每个元素里面写style.优点就是灵活,给指定的元素添加样式.缺点是重用性很差, ...

  10. Gtest打桩函数

    假设Client的定义如下 class Client { ...... public: virtual bool GetData(std::string& data); ...... }; 我 ...