洛谷p1503鬼子进村

一蓑烟雨任生平 一蓑烟雨任生平     2022-09-20     639

关键词:

题目背景

小卡正在新家的客厅中看电视。电视里正在播放放了千八百次依旧重播的《亮剑》,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战。

题目描述

描述 县城里有n个用地道相连的房子,第i个只与第i-1和第i+1个相连。这是有m个消息依次传来

1、消息为D x:鬼子将x号房子摧毁了,地道被堵上。

2、消息为R :村民们将鬼子上一个摧毁的房子修复了。

3、消息为Q x:有一名士兵被围堵在x号房子中。

李云龙收到信息很紧张,他想知道每一个被围堵的士兵能够到达的房子有几个。

输入输出格式

输入格式:

 

第一行2个整数n,m(n,m<=50000)。

接下来m行,有如题目所说的三种信息共m条。

 

输出格式:

 

对于每一个被围堵的士兵,输出该士兵能够到达的房子数。

 

输入输出样例

输入样例#1:
7 9
D 3
D 6
D 5
Q 4
Q 5
R
Q 4
R
Q 4
输出样例#1:
1
0
2
4

说明

若士兵被围堵在摧毁了的房子中,那只能等死了。。。。。。

思路:

1.用STL去维护。

2.用线段树去搞,思路类似于酒店hotile

代码STL:

#include<set>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
set<int>se;
set<int>:: iterator sx;
int n,m,stack[3000],top=0;
int main(){
    scanf("%d%d",&n,&m);
    se.insert(0);
    se.insert(n+1);
    for(int i=1;i<=m;i++){
        char opt[2];int x;
        scanf("%s",opt);
        if(opt[0]==D){
            scanf("%d",&x);
            se.insert(x);
            stack[++top]=x;
        }
        else if(opt[0]==Q){
            scanf("%d",&x);
            sx=se.lower_bound(x);
            int s=*sx,t=*(--sx);
            if(s==x){
                cout<<"0"<<endl;
                continue;
            }
            int ans=s-t;
            cout<<ans-1<<endl;
        }
        else if(opt[0]==R){
            sx=se.find(stack[top--]);
            x=*sx;
            se.erase(x);
        }
    }
}

 

p1503鬼子进村(代码片段)

...亮剑》,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战。题目描述描述县城里有n个用地道相连的房子,第i个只与第i-1和第i+1个相连。这是有m个消息依次传来1、消息为Dx:鬼子将x号房... 查看详情

[洛谷1053]鬼子进村

题目背景小卡正在新家的客厅中看电视。电视里正在播放放了千八百次依旧重播的《亮剑》,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战。题目描述描述县城里有n个用地道相连的房... 查看详情

luogup1503鬼子进村(代码片段)

传送门 解题思路平衡树,支持插入,删除,找前驱后继,set水过。 #include<iostream>#include<cstdio>#include<cstring>#include<set>usingnamespacestd;constintMAXN=50005;inlineintrd()intx=0,f=1;charch= 查看详情

luogup1503鬼子进村(代码片段)

嘟嘟嘟 线段树好题。其实挺水的,想暴力怎么做:每一次从这个点开始向两边扩,直到遇到第一个摧毁的房屋。那么把暴力改成倍增,然后线段树查询区间和是否为0。时间复杂度O(nlog2n)。题解好像有线段树的O(nlogn)的做法... 查看详情

题解luogup1503鬼子进村(代码片段)

平衡树好题原题传送门这道题要用Splay,我博客里有对Splay的详细介绍这道题思维有点难,要把被摧毁的节点插入平衡树,而不是把没有摧毁的节点插入先把0和n+1插入平衡树,作为边界操作1:摧毁节点,把该点插入平衡树操作2... 查看详情

luogu1503(代码片段)

P1503鬼子进村题目背景小卡正在新家的客厅中看电视。电视里正在播放放了千八百次依旧重播的《亮剑》,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战。题目描述描述县城里有n个用地... 查看详情

真tm操蛋——观《鬼子来了》有感

杀日本人有罪?日本人杀中国人为何无罪?战俘?双手沾满鲜血,仇人,为何杀仇人还要被自己人判刑,被仇人斩首?看了最后结局,我心里只有这两句话,同学说结局不好,我觉得结局恰恰很好,姜文是个很好的导演,他布置... 查看详情

洛谷p1193洛谷团队训练vs传统团队训练

P1193洛谷团队训练VS传统团队训练题目背景“在中学的信息学教育领域,洛谷无疑是一个相当受欢迎的辅助网站。同时有百余所学校正在通过洛谷进行信息学竞赛(以后简称OI)的教育。洛谷之所以如此受欢迎,是因为洛谷创... 查看详情

洛谷的uid是啥

参考技术A洛谷的uid是创建账户的时候用来识别身份的一串代码,用来加好友等作用,是一个人在洛谷这个软件身份的象征。 查看详情

洛谷有人疯了!!!

洛谷名人几年前经典案例总结:作了不一定会死,但死了一定是作的!!! 查看详情

题解目录

洛谷题解:P3399【丝绸之路】洛谷题解:P2364【胖男孩】洛谷题解:P1020【导弹拦截】洛谷题解:P1160【队列安排】洛谷题解:P1004【方格取数】  查看详情

洛谷洛谷月赛4月月赛round1/2

洛谷月赛“月”来“月”丧了,一月更比一月丧,做得我十分不“月”……4月的两轮月赛,都只会T1,就写一下吧,等待后续更新……先看看Round1的T1:【R1T1】网址:点我【题意简述】给定一个长度为n的序列,其中的元素均是1~... 查看详情

每周刷题记录--bynoble_

...-------------------------------------2017.10.3主要是水题与傻逼dp:洛谷P1199三国游戏模拟洛谷P1115最大子段和dp洛谷P1508Likecloud-吃、吃、吃洛谷P1510精卫填海洛谷P1855榨取kkksc03洛谷P1982小朋友的数字洛谷P1981表达式求值洛谷P 查看详情

洛谷p3379lca,hdu2586,洛谷p1967货车运输,倍增lca,树上倍增

倍增lca板子洛谷P33791#include<cstdio>2structE3{4intto,next;5}e[1001000];6intf1[500100],anc[500100][20],log2n,deep[500100],n,m,s,ne;7boolvis[500100];8voiddfs(intx,intfa)9{10inti,k;11vis[x]=1;12anc[x][0 查看详情

洛谷题目怎么看答案

洛谷题库是在最右边竖着的工具栏的第二个图标。点进去就是洛谷的题库了在这里可以搜题目。也可以搜题号。或者是算法。在题目的前边会有三个符号,第一个是绿√第二个是红叉子第三个是灰色的短横线分别表达:满分,错误(... 查看详情

洛谷1948电话线

题目描述FarmerJohnwantstosetupatelephonelineathisfarm.Unfortunately,thephonecompanyisuncooperative,soheneedstopayforsomeofthecablesrequiredtoconnecthisfarmtothephonesystem.ThereareN(1≤N≤1,000)forlorntelep 查看详情

洛谷t3401洛谷树树剖&&分治

这道题好干燥啊。。。折腾了半个月。。。感谢bogo大佬对我的指导。。。题目要求支持的操作:1.查询某段路径的所有子路径的xor值之和;2.修改某条边的权值。重点是操作1。刚开始,我看到了操作1之后就不自觉的想到了非~常... 查看详情

我的洛谷题解

2018.2.4P1217【USACO1.5]回文质数PrimePalindromes】2018.2.6 P1308【统计单词数】链接持续更新中 查看详情