E - 秋实大哥与战争

秋实大哥与战争

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

Submit Status

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

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

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

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

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

Input

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

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

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

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

Output

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

Sample input and output

Sample Input Sample Output
5 3
2 2
0 3
2 2
5
2
#pragma GCC diagnostic error "-std=c++11"
#include <bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie(0);
#include <typeinfo>

using namespace std;

void Work(int n, int m){
    set<int> S;
    int c, x;
    S.insert(0), S.insert(n + 1);
    for(int i = 1; i <= m; i++){
        scanf("%d %d", &c, &x);
        if(c == 0) S.insert(x);
        else if(c == 1) S.erase(x);
        else{
            if(S.count(x)) puts("0");
            else{
                int l = *--S.lower_bound(x);
                int r = *S.lower_bound(x);
                printf("%d\n", r - l - 1);
            }
        }
    }
}
int main(){
    int n, m;
    while(scanf("%d %d", &n, &m) == 2){
        Work(n, m);
    }
}
时间: 2024-10-20 22:24:25

E - 秋实大哥与战争的相关文章

UESTC_秋实大哥与战争 2015 UESTC Training for Data Structures&lt;Problem D&gt;

D - 秋实大哥与战争 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击. 敌方每一次会攻击一个士兵,这个士兵就会阵亡,整个阵列就会从这个位置断开:同时有的时候已阵亡的士兵会受人赢气息感染而复活. 秋

UESTC 1061 秋实大哥与战争 线段树区间合并

秋实大哥与战争 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) 男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击. 敌方每一次会攻击一个士兵,这个士兵就会阵亡,整个阵列就会从这个位置断开:同时有的时候已阵亡的士兵会受人赢气息感染而复活. 秋实大哥想知道某一时刻某一个士兵所在的

CDOJ 1061 C - 秋实大哥与战争 STL set 迭代器

题目链接: C - 秋实大哥与战争 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit Status Practice UESTC 1061 Appoint description:  System Crawler  (2016-04-23) Description 男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从

cdoj 秋实大哥与战争

首先,显然每个区间的最长连续子区间要么在左孩子里,要么在右孩子里,要么跨越两个孩子.于是我们可以对每个区间维护如下信息ll(left long),rl(rigth long),ml(mid long)分别表示前缀最长长度,后缀最长长度,中间的最长区间长度,并维护即可. 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<algorithm> 5 #include<cs

uestc 1073 秋实大哥与线段树 Label:线段树

秋实大哥与线段树 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) “学习本无底,前进莫徬徨.” 秋实大哥对一旁玩手机的学弟说道. 秋实大哥是一个爱学习的人,今天他刚刚学习了线段树这个数据结构. 为了检验自己的掌握程度,秋实大哥给自己出了一个题,同时邀请大家一起来作. 秋实大哥的题目要求你维护一个序列,支持两种操作:一种是修改某一个元素的值:一种是询问一段区间的和. Input

UESTC_秋实大哥掰手指 2015 UESTC Training for Dynamic Programming&lt;Problem B&gt;

B - 秋实大哥掰手指 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 2048/1024KB (Java/Others) Submit Status 秋实大哥发现数据结构专题出到了N题,但是他一时算不出来已经有了几道题,他就萌萌地掰手指数. 这个时候他发现,虽然人们根据手指数创造了十进制数,但是两只手同时能表达的数是0-10一共十一个数字. 这样,他觉得如果用手指表现十进制数,同一个十进制数就会有很多种不同的表现方法. 比如,11

UESTC_秋实大哥与快餐店 2015 UESTC Training for Data Structures&lt;Problem C&gt;

C - 秋实大哥与快餐店 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 朝为田舍郎,暮登天子堂.秋实大哥从小就怀抱有远大的理想,所以他开了一家快餐店. 秋实大哥根据菜的口感,给每一道菜一个唯一的CID,同时对于前来的客人,根据他们的口味喜好,秋实大哥会给每一个客人一个PID. 对于一个标号为PID的客人,他对标号为CID的菜的喜爱程度为PID∧CI

UESTC_秋实大哥打游戏 2015 UESTC Training for Data Structures&lt;Problem H&gt;

H - 秋实大哥打游戏 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status ”也许人生就是游戏,你却执意耕耘着春秋.” —— 秋实大哥叹道. 秋实大哥是一个喜欢玩游戏的人,相较于其他种类的游戏,秋实大哥更喜欢自由开放的沙盒游戏,尤其是minecraft. 现在,秋实大哥发现了N个独立的小岛(编号1,2,3.....N),于是他要把这些小岛连起来. 每一次

UESTC_秋实大哥去打工 2015 UESTC Training for Data Structures&lt;Problem G&gt;

G - 秋实大哥去打工 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 天行健,君子以自强不息.地势坤,君子以厚德载物. 天天过节的秋实大哥又要过节了,于是他要给心爱的妹子买礼物.但由于最近秋实大哥手头拮据,身为一个男人,他决定去打工! 秋实大哥来到一家广告公司.现在有n块矩形墙从左至右紧密排列,每一块高为Hi,宽为Wi. 公司要求秋实大哥找出一块最