洛谷——P1640 [SCOI2010]连续攻击游戏
P1640 [SCOI2010]连续攻击游戏
题目描述
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。现在lxhgww想知道他最多能连续攻击boss多少次?
这题?$sort$一遍不就通过了吗,$O(nlogn)$
#include<bits/stdc++.h>#define N 1000005 using namespace std;int n; struct node{int a,b; }e[N]; bool vis[N];bool cmp(node A,node B){return A.a==B.a ? A.b<B.b : A.a<B.a; }int main() {scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&e[i].a,&e[i].b);if(e[i].a>e[i].b) swap(e[i].a,e[i].b);}sort(e+1,e+1+n,cmp);for(int i=1;i<=n;i++){if(!vis[e[i].a]) vis[e[i].a]=1;else vis[e[i].b]=1;}for(int i=1;i<=N-1;i++){if(!vis[i]){printf("%d\n",i-1);return 0;}}}
不过二分图最大匹配的思路时间复杂度貌似更有优秀啊
将属性向编号连边,就好像属性在编号里匹配,把它抽象成物品就好理解啦
#include<bits/stdc++.h>#define N 4000005 using namespace std;int n,head[N],tot,ans; struct node{int to,next; }e[N];void add(int u,int v){e[++tot].to=v,e[tot].next=head[u],head[u]=tot; }int dfn[N],match[N]; bool dfs(int u,int t){for(int i=head[u];i;i=e[i].next){int v=e[i].to;if(dfn[v]!=t){dfn[v]=t;if(!match[v]||dfs(match[v],i)){match[v]=u;return true;}}}return false; }int main() {scanf("%d",&n);for(int u,v,i=1;i<=n;i++){scanf("%d%d",&u,&v);add(u,i),add(v,i);}for(int i=1;i<=1000000;i++){if(dfs(i,i)) ++ans;else break;}printf("%d\n",ans); }
转载于:https://www.cnblogs.com/song-/p/9833248.html
洛谷——P1640 [SCOI2010]连续攻击游戏相关推荐
- P1640 [SCOI2010]连续攻击游戏 匈牙利算法
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- P1640 [SCOI2010]连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- P1640 [SCOI2010]连续攻击游戏:(二分图)
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...
- P1640 [SCOI2010]连续攻击游戏 (二分图)
传送门 题面: 题解: 不看标签还是很难想到建图,看了标签也想不到怎么建图. 因为每个数字只能被选择一次,每个装备也只能被选择一次,那么就可以考虑装备与两个属性之间建边. 那么问题就变成了二分图最大匹 ...
- 洛谷P1129 [ZJOI2007] 矩阵游戏 题解
洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...
- 洛谷解题P1000 超级玛丽游戏(C++)
此文章关于洛谷P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1000题目的解析: 先看题 ...
- 【bzoj3240 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法--然而我太弱了,一开始只想到了矩阵乘法的 ...
- [洛谷P2584][ZJOI2006]GameZ游戏排名系统
题目大意:同[洛谷P4291][HAOI2008]排名系统(双倍经验) 题解:略 卡点:无 C++ Code: #include <cstdio> #include <map> ...
- 【二分图】洛谷P1640连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
最新文章
- 用二维编码做特色名片!
- TCP/IP学习笔记(三)TCP流量控制以及滑动窗口
- Angular html 页面里的井号 #
- 【Raspberry Pi - Raspbian】系统换更新源
- utf-8转换gbk代码_将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事。...
- python 垃圾回收机制
- java 强制类型转换告警_java-对未声明的强制转换返回警告
- No module named 'django.core.urlresolvers
- Python中非纯文本文件的读取
- Linux C++ STL用法介绍(1)
- springBoot(5)---单元测试,全局异常
- 【数论】Concatenated Multiples【codeforces-Round #506-div3-D】
- 计算机网络hdcp是什么意思,为什么显卡面板显示此显示器不支持HDCP是怎么回事...
- 经过几天的努力,出了 2 本保姆级编程电子书!
- 《缠中说禅108课》15:没有趋势,没有背驰
- matlab图像身高测量,基于Kinect景深图像的快速身高和体重测量方法
- AIX 修 炼 之 路
- 重磅!2021年国内Java培训机构排名十强出炉啦!
- 第四章 姜诸儿意气风发登君位 鲁桓公窝囊枉死彭生手
- [SPRD]展锐Android R关机充电动画修改