当前位置: 首页 > news >正文

2015 UESTC 数据结构专题D题 秋实大哥与战争 SET的妙用

D - 秋实大哥与战争

Time Limit: 1 Sec  Memory Limit: 256 MB

题目连接

http://acm.uestc.edu.cn/#/contest/show/59

Description

男儿何不带吴钩,收取关山五十州。

征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏。

秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击。

敌方每一次会攻击一个士兵,这个士兵就会阵亡,整个阵列就会从这个位置断开;同时有的时候已阵亡的士兵会受人赢气息感染而复活。

秋实大哥想知道某一时刻某一个士兵所在的阵列的长度是多少。

Input

第一行包含两个整数n,m,表示秋实大哥的士兵数目和接下来发生的事件数目。

接下来m行,每一行是以下三种事件之一:

0 x : 表示x位置的士兵受到攻击阵亡
1 x : 表示x位置的士兵受人赢气息感染复活
2 x : 秋实大哥想知道第x个士兵所在阵列的长度

1≤n,m≤100000,1≤x≤n。

Output

对于每一个2 x事件,输出对应的答案占一行。
 

Sample Input

5 3
2 2
0 3
2 2

Sample Output

5
2

HINT


题意


题解:

set算法~

代码:

 

//qscqesze
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 200001
#define mod 10007
#define eps 1e-9
//const int inf=0x7fffffff;   //无限大
const int inf=0x3f3f3f3f;
/*

int buf[10];
inline void write(int i) {
  int p = 0;if(i == 0) p++;
  else while(i) {buf[p++] = i % 10;i /= 10;}
  for(int j = p-1; j >=0; j--) putchar('0' + buf[j]);
  printf("\n");
}
*/
//**************************************************************************************
inline ll read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
set<int> s;
int flag[maxn],n,m,a,b,c,d;
int main()
{
    n=read(),m=read();
    s.insert(0),s.insert(n+1);
    for(int i=0;i<m;i++)
    {
        scanf("%d%d",&a,&b);
        {
            if(a==0)
            {
                if(!flag[b])
                {
                    s.insert(b);
                    flag[b]=1;
                }
            }
            else if(a==1)
            {
                if(flag[b])
                {
                    s.erase(b);
                    flag[b]=0;
                }
            }
            else
            {
                if(flag[b])
                {
                    printf("0\n");
                }
                else
                {
                    c=*s.lower_bound(b);
                    d=*--s.lower_bound(b);
                    printf("%d\n",c-d-1);
                }
            }
        }
    }
}

 

相关文章:

  • Sass和Compass入门
  • Operations Manager 2007 R2系列之域控客户端代理安装
  • C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
  • 控件基本属性Padding, Margins, Align...
  • IBM Tivoli Management Framework默认设置漏洞
  • 在 Java SE 6 中监视和诊断性能问题
  • WinCE6.0流驱动开发的两种方法及驱动加载失败问题解决
  • android 深入研究ratingbar自定义
  • 新的Windows Azure SDK for PHP 3.0版本现已推出
  • 2764: [JLOI2011]基因补全
  • struts1.2实现图片上传
  • 进程管理工具glances的使用
  • Acunetix Web Vulnerability Scanner
  • “无价”的美妙——阅《无价》有感
  • fedora21安装ruby-rails
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【刷算法】求1+2+3+...+n
  • Joomla 2.x, 3.x useful code cheatsheet
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构建二叉树进行数值数组的去重及优化
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 深入浏览器事件循环的本质
  • 用mpvue开发微信小程序
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 阿里云服务器如何修改远程端口?
  • 如何在招聘中考核.NET架构师
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (03)光刻——半导体电路的绘制
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • ***检测工具之RKHunter AIDE
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .net Application的目录
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net Core与存储过程(一)
  • .Net 高效开发之不可错过的实用工具
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net和jar包windows服务部署
  • .Net中wcf服务生成及调用
  • [Angular] 笔记 21:@ViewChild
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [C/C++] C/C++中数字与字符串之间的转换
  • [C++]打开新世界的大门之C++入门
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [Flex][问题笔记]TextArea滚动条问题
  • [Invalid postback or callback argument]昨晚调试程序时出现的问题,MARK一下
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息
  • [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列
  • [LeetCode]Balanced Binary Tree