I - Tunnel Warfare
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 50010
using namespace std;
int n,m,top;
int stack[MAXN],vis[MAXN];
struct nond{
int l,r,len,ren,mid;
}tree[MAXN*];
void build(int now,int l,int r){
tree[now].l=l;tree[now].r=r;
tree[now].len=tree[now].r-tree[now].l+;
tree[now].ren=tree[now].mid=tree[now].len;
if(tree[now].l==tree[now].r) return ;
int mid=(tree[now].l+tree[now].r)/;
build(now*,l,mid);
build(now*+,mid+,r);
}
void change(int now,int x,int pos){
if(tree[now].l==tree[now].r){
tree[now].len=tree[now].ren=tree[now].mid=pos;
return ;
}
int mid=(tree[now].l+tree[now].r)/;
if(x<=mid) change(now*,x,pos);
else if(x>mid) change(now*+,x,pos);
tree[now].len=tree[now*].len;
tree[now].ren=tree[now*+].ren;
tree[now].mid=max(tree[now*].mid,tree[now*+].mid);
tree[now].mid=max(tree[now].mid,tree[now*].ren+tree[now*+].len);
if(tree[now*].len==tree[now*].r-tree[now*].l+)
tree[now].len=tree[now*].len+tree[now*+].len;
if(tree[now*+].ren==tree[now*+].r-tree[now*+].l+)
tree[now].ren=tree[now*+].ren+tree[now*].ren;
}
int query(int now,int k){
if(tree[now].l==tree[now].r||tree[now].mid==||tree[now].mid==tree[now].r-tree[now].l+)
return tree[now].mid;
int mid=(tree[now].l+tree[now].r)/;
if(k<=mid){
if(k>=tree[now*].r-tree[now*].ren+)
return query(now*,k)+query(now*+,mid+);
else return query(now*,k);
}
else{
if(k<=tree[now*+].l+tree[now*+].len-)
return query(now*+,k)+query(now*,mid);
else return query(now*+,k);
}
}
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
build(,,n);top=;
for(int i=;i<=m;i++){
char c;int x;
scanf("\n%c",&c);
if(c=='D'){
scanf("%d",&x);
stack[++top]=x;change(,x,);
}
else if(c=='Q'){
scanf("%d",&x);
printf("%d\n",query(,x));
}
else change(,stack[top--],);
}
}
}
/*
7 9
D 3
D 6
D 5
Q 4
Q 5
R
Q 4
R
Q 4
*/
I - Tunnel Warfare的更多相关文章
- hdu1540 Tunnel Warfare
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- [POJ2892]Tunnel Warfare
[POJ2892]Tunnel Warfare 试题描述 During the War of Resistance Against Japan, tunnel warfare was carried ...
- HDU 1540 Tunnel Warfare 平衡树 / 线段树:单点更新,区间合并
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Lim ...
- POJ 2892 Tunnel Warfare(线段树单点更新区间合并)
Tunnel Warfare Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 7876 Accepted: 3259 D ...
- HDU 1540 Tunnel Warfare 线段树区间合并
Tunnel Warfare 题意:D代表破坏村庄,R代表修复最后被破坏的那个村庄,Q代表询问包括x在内的最大连续区间是多少 思路:一个节点的最大连续区间由(左儿子的最大的连续区间,右儿子的最大连续区 ...
- hdu 1540 Tunnel Warfare (区间线段树(模板))
http://acm.hdu.edu.cn/showproblem.php?pid=1540 Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) ...
- poj 2892 Tunnel Warfare(线段树)
Tunnel Warfare Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 7499 Accepted: 3096 D ...
- HDU-1540 Tunnel Warfare
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- hdu 1540 Tunnel Warfare(线段树区间统计)
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- HDU 1540 Tunnel Warfare(最长连续区间 基础)
校赛,还有什么途径可以申请加入ACM校队? Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/ ...
随机推荐
- SQL2000数据库定期自动备份与修改
SQL2000数据库定期自动备份与修改 http://www.veryhuo.com 2009-11-19 烈火网 投递稿件 我有话说 在SQL server企业管理器中,可以设置数据库的定期自动 ...
- U32670 小凯的数字 数学
这是洛谷一个比赛中的一道题,和去年NOIP D1T1挺像.我看了一眼之后想“这不是小学奥数吗?求一个数字和就好了呀”...然后,60,剩下T了,gg. 只好看正解,但是一脸懵逼???然后看了证明,c* ...
- K-means algorithm----PRML读书笔记
The K-means algorithm is based on the use of squared Euclidean distance as the measure of dissimila ...
- uoj#149
dp 没想出来 最先开始想 dp[i][j][k]表示s匹配到i,t匹配到j,当前分了k段的方案数 s[i]==t[j] dp[i][j][k]+=dp[i-1][j-1][k-1] s[i]==t[ ...
- 第16课 “远程 Git文档库” 的基础操作
16-1 “远程Git文档库” 的功能 如果 “本地Git文档库” 和 “远程Git文档库” 是存储在不同的计算机中,它们之前传送数据可以通过HTTP/HTTPS.SSH.GIT proto ...
- Java 网络IO编程(BIO、NIO、AIO)
本概念 BIO编程 传统的BIO编程 代码示例: public class Server { final static int PROT = 8765; public static void main ...
- BZOJ 3653 主席树
思路: (抄一波公式) $$ans=min(dep[x],k)×(size[x]-1)+\sum_{y在x的子树中,且dis(x,y)<=k}(size[y]-1)$$ 顺着DFS序 按照dee ...
- 闲谈Spring-IOC容器
闲聊 无论是做j2ee开发还是做j2se开发,spring都是一把大刀.当下流行的ssh三大框架中,spring是最不可替代的,如果不用hibernate和struts,我觉得都无关紧要,但是不能没有 ...
- HTML5标签构成
一个HTML5文件是由一些列的元素和标签组成的.元素是HTML5文件的重要组成部分,例如title(文件标题).img(图像)及table(表格)等.元素名不区分大小写,而HTML5用标签来规定元素的 ...
- 通过getSystemServices获取手机管理大全
getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...