【二分图】洛谷P1640连续攻击游戏
题目描述
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。现在lxhgww想知道他最多能连续攻击boss多少次?
输入输出格式
输入格式:
输入的第一行是一个整数N,表示lxhgww拥有N种装备接下来N行,是对这N种装备的描述,每行2个数字,表示第i种装备的2个属性值
输出格式:
输出一行,包括1个数字,表示lxhgww最多能连续攻击的次数。
输入输出样例
3 1 2 3 2 4 5
2
说明
Limitation
对于30%的数据,保证N < =1000
对于100%的数据,保证N < =1000000
来源:SCOI 2010
题解
这道题乍一看数据是用不了二分图的
但是真的是这样的么?
细看题后我们发现,并不需要匹配所有边
只要按顺序匹配,失配跳出即可
然后我们很容易能发现,最大连击数显然为n
所以我们可以无视所有大于n的点
然后把小于等于n的点连在n+i上
这样如果某个点连在多个点上,那么它可选择的方式就很多
代码如下:
#include<cstdio> #include<iostream> using namespace std;struct edge{int y,ne; }e[4004005];int n,a,b,ecnt; int head[2002000],point[2002000]; bool used[2002000];void add(int x,int y) {e[++ecnt].y=y;e[ecnt].ne=head[x];head[x]=ecnt; }bool find(int x) {used[x]=1;for(int i=head[x];i;i=e[i].ne){if(!point[e[i].y]){point[e[i].y]=x;used[x]=0;return 1;}else if(!used[point[e[i].y]]&&find(point[e[i].y])){point[e[i].y]=x;used[x]=0;return 1;}}used[x]=0;return 0; }int main() {scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%d%d",&a,&b);if(a<=n)add(a,n+i);if(b<=n)add(b,n+i);}for(int i=1;i<=n;++i)if(!find(i)){printf("%d",i-1);return 0;}printf("%d",n);return 0; }
转载于:https://www.cnblogs.com/rir1715/p/6847551.html
【二分图】洛谷P1640连续攻击游戏相关推荐
- 洛谷P1640 连续攻击游戏 二分图匹配
给出n≤1e6n\leq1e6n≤1e6个装备,每个装备都有两个属性值,它的范围一定在[1,10000][1,10000][1,10000],你每个装备只能选择一个属性值,然后要求出最长的一段从111 ...
- 洛谷 P1129 矩阵游戏
洛谷 P1129 矩阵游戏 题目链接 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个 n×n 黑白方阵进行(如同国际象棋一般,只是颜色是 ...
- 洛谷 P2197 nim游戏
洛谷 P2197 nim游戏 题目描述 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子(每堆石子数量小于10000),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取 ...
- 洛谷 P1558 色板游戏
传送门:洛谷 P1558 色板游戏 算法分析:观察到数据范围:\(1\leq T\leq 30\) ,考虑使用二进制来进行状态压缩 将颜色\(x\)表示为 \(1<<(x-1)\) 即 \ ...
- 洛谷 P3041 视频游戏的连击Video Game Combos(AC自动机+拓扑排序+数位DP)
洛谷 P3041 视频游戏的连击Video Game Combos 难度一般,不过这个数位DP其实应该叫做记忆化搜索 题意:玩游戏时可以通过按键组合打出combo技能:然后是已知N个combo的按键方 ...
- 洛谷——P1640 [SCOI2010]连续攻击游戏
P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...
- 动态规划——洛谷_P1057传球游戏
题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...
- 洛谷——P1000 超级玛丽游戏
P1000 超级玛丽游戏 题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 另外强烈推荐新用户必读贴 题目描述 超级玛丽是一个非常经典的游戏. ...
- 洛谷P1000 超级玛丽游戏C++题解
首先我们看这道题的题目"超级玛丽游戏",第一道题就让我们写个游戏出来.结果点进去一看,顿时觉得这道题是在开玩笑,本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续 ...
最新文章
- vip能ping通,但80不通的解决方法
- CLR Via CSharp读书笔记(26) - 计算限制的异步操作
- 09945 oracle 解决方法_ORACLE rman与RMAN-00054ORA-09945
- js中常用的操作字符串的方法大全
- php mysql增改删_PHP分享:如何实现MySQL的增加删除修改查看
- [转]你打算如何提升自己?
- 【渝粤教育】国家开放大学2018年秋季 1344T金融风险管理 参考试题
- java restlet 教程_Restlet 2.0 边学边写(五)Restlet的POST、PUT和DELETE
- Kaldi在线搭建语音识别系统-李健
- Linux Rootkit的反侦测手段漫谈
- 猎豹浏览器使用评测(2)-一款很轻的极简绿色浏览器
- 最新网站外链建设方法大全!
- 虹科案例|安全性防护平台-海康威视摄像机中的重大漏洞
- 最新2009年度长篇经典小说推荐列表
- MangoDB安装教程
- 如何轻松打造一款智能防丢神器?让生活更省心省力
- Visual Studio Code下载与安装指南
- CPU锁频率在0.78 GHz
- 面向对象编程,你真正懂吗?
- 计算机音乐毕业论文范文,计算机音乐制作毕业论文范文.doc
热门文章
- PHP常见的字符串方法
- C/C++如何整行读入字符串?
- 在ASP.NET MVC中使用IIS级别的URL Rewrite
- 使用 UpdatePanel 【转by Dorian Deng】
- OpenCV中的cvCreateImage的参数channels()的意义
- java怎么让进程停止_JAVA:如何在进程停止时调用一个方法(甚至有可能吗?)
- matlab fittype 求不出参数,[转]matlab 中fit fittype
- mysql创建临时表 分页_ASP+MySQl利用临时表分页第一页数据正常,下一页往后没有数据...
- linux下find命令用法
- linux 分区表dd,dd复制分区后目标分区的大小变成原分区了