UESTC 1061 SET的妙用
来源:互联网 发布:淘宝网店手机拍照 编辑:程序博客网 时间:2024/06/05 14:58
E - 秋实大哥与战争
Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %lluDescription
男儿何不带吴钩,收取关山五十州。
征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏。
秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击。
敌方每一次会攻击一个士兵,这个士兵就会阵亡,整个阵列就会从这个位置断开;同时有的时候已阵亡的士兵会受人赢气息感染而复活。
秋实大哥想知道某一时刻某一个士兵所在的阵列的长度是多少。
Input
第一行包含两个整数
接下来
0 x : 表示x位置的士兵受到攻击阵亡1 x : 表示x位置的士兵受人赢气息感染复活2 x : 秋实大哥想知道第x个士兵所在阵列的长度
Output
对于每一个
Sample Input
5 3
2 2
0 3
2 2
Sample Output
5
2
题解:这一题可以说非常巧妙地使用了set,可以将死的士兵插入进去,如果查询就进行二分查找,这个数字的左右区间,答案相减即可。注意有一种情况是如果查询的那个恰好是死的士兵那就不去二分查找了,直接输出0。
亦可以用线段树写。表示太难了
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#include<set>set<int>s;int main(){ int n,m,a,b; scanf("%d%d",&n,&m); s.insert(0); s.insert(n+1); while(m--) { scanf("%d%d",&a,&b); if(a==0) { s.insert(b); } else if(a==1) { if(s.count(b)) { s.erase(b); } } else { if(s.count(b)) { puts("0"); } else { int R=*(s.lower_bound(b)); int L= *(--s.lower_bound(b)); printf("%d\n",R-L-1); } } } return 0;}
0 0
- UESTC 1061 SET的妙用
- hdu 1540 set的妙用
- raphael js 中set 的妙用
- poj 3050 dfs + set的妙用
- UESTC -- 1061 秋实大哥与战争(暴力/set)
- 【Python系列5】set和list的妙用
- 10030---springmvc中<c:set> / <c:remove>标签的妙用
- Java集合类Set的add方法妙用
- /()/的妙用
- ${}的妙用
- UESTC 1651 Uestc的命运之旅
- 奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用
- HDU 5247 找连续数 (set妙用)
- UESTC
- UESTC
- UESTC
- UESTC
- UESTC
- extjs4 tools 配置项
- 数据结构的扩张—算法导论第14章(194)
- iOS 最新上架流程
- UITouch 触摸事件处理(实例)
- (八)swift 中UINavigationController 中的一些操作
- UESTC 1061 SET的妙用
- 安卓各类资源统计
- java不定参数"..."详解
- iOS 基础字符判断函数
- 对话物联网新人4---吐槽篇
- 在swift中使用FMDB框架进行数据库操作(适用于swift2.0)
- 风林火山
- 远程的时候打印机已重定向是什么意思?
- 方法区