http://poj.org/problem?id=2892

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 51000
using namespace std; int stack1[maxn],top;
struct node
{
int l,r;
int len,ren;
}p[maxn*]; void up(int i)
{
p[i].len=p[i<<].len; p[i].ren=p[i<<|].ren;
if(p[i<<].len==(p[i<<].r-p[i<<].l+))
p[i].len+=p[i<<|].len;
if(p[i<<|].ren==(p[i<<|].r-p[i<<|].l+))
p[i].ren+=p[i<<].ren;
}
void build_tree(int i,int l,int r)
{
p[i].l=l; p[i].r=r;
if(l==r)
{
p[i].len=p[i].ren=;
return ;
}
int mid=(l+r)>>;
build_tree(i<<,l,mid);
build_tree(i<<|,mid+,r);
up(i);
} void update(int id,int i,int oper)
{
if(p[i].l==p[i].r)
{
p[i].len=p[i].ren=oper;
return;
}
int mid=(p[i].l+p[i].r)>>;
if(id<=mid)
update(id,i<<,oper);
else
update(id,i<<|,oper);
up(i);
} int search1(int id,int i)
{
if(p[i].l==p[i].r)
return p[i].len;
int mid=(p[i].l+p[i].r)>>;
if(id<=mid)
{
if(p[i<<].r-p[i<<].ren+<=id)
return p[i<<].ren+p[i<<|].len;
else
search1(id,i<<);
}
else
{
if(p[i<<|].len+p[i<<|].l->=id)
return p[i<<].ren+p[i<<|].len;
else
search1(id,i<<|);
}
} int main()
{
int n,q,a;
while(scanf("%d%d",&n,&q)!=EOF)
{
build_tree(,,n);
top=;
getchar();
while(q--)
{
char ch;
scanf("%c",&ch);
if(ch=='D')
{
scanf("%d",&a);
update(a,,);
stack1[top++]=a;
}
else if(ch=='Q')
{
scanf("%d",&a);
printf("%d\n",search1(a,));
}
else if(ch=='R')
{
if(top>)
{
update(stack1[--top],,);
}
}
getchar();
}
}
return ;
}

poj 2892 &&hdu 1540 Tunnel Warfare的更多相关文章

  1. HDU 1540 Tunnel Warfare(最长连续区间 基础)

    校赛,还有什么途径可以申请加入ACM校队?  Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/ ...

  2. hdu 1540 Tunnel Warfare (区间线段树(模板))

    http://acm.hdu.edu.cn/showproblem.php?pid=1540 Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others) ...

  3. hdu 1540 Tunnel Warfare 线段树 单点更新,查询区间长度,区间合并

    Tunnel Warfare Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  4. HDU 1540 Tunnel Warfare 平衡树 / 线段树:单点更新,区间合并

    Tunnel Warfare                                  Time Limit: 4000/2000 MS (Java/Others)    Memory Lim ...

  5. hdu 1540 Tunnel Warfare(线段树区间统计)

    Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  6. hdu 1540 Tunnel Warfare 线段数区间合并

    Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) P ...

  7. HDU 1540 Tunnel Warfare 线段树区间合并

    Tunnel Warfare 题意:D代表破坏村庄,R代表修复最后被破坏的那个村庄,Q代表询问包括x在内的最大连续区间是多少 思路:一个节点的最大连续区间由(左儿子的最大的连续区间,右儿子的最大连续区 ...

  8. hdu 1540 Tunnel Warfare (线段树 区间合并)

    Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  9. HDU 1540 Tunnel Warfare

    HDU 1540 思路1: 树状数组+二分 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #d ...

随机推荐

  1. FreeRTOS学习笔记——任务间使用队列同步数据

    1.前言 在嵌入式操作系统中队列是任务间数据交换的常用手段,队列是生产者消费者模型的重要组成部分.FreeRTOS的队列简单易用,下面结合一个具体例子说明FreeRTOS中的队列如何使用. 2.参考代 ...

  2. media screen 响应式布局(知识点)

    一.什么是响应式布局? 响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网 ...

  3. Android源码学习

    http://android-wheel.googlecode.com/svn/trunk/android-wheel-read-only 在github上面有一个叫做 android-wheel 的 ...

  4. J2EE之WebLogic Server

    WebLogic是用于开发.集成.部署和管理大型分布式Web应用. 网络应用和数据库应 用的Java应用server. 将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用 ...

  5. uva:10340 - All in All(字符串匹配)

    题目:10340 - All in All 题目大意:给出字符串s和t,问s是否是t的子串.s若去掉某些字符能和t一样,那么t是s的子串. 解题思路:匹配字符.t的每一个字符和s中的字符匹配.注意这里 ...

  6. 深入懂得android view 生命周期

    作为自定义 view 的基础,如果不了解android  view 的生命周期 , 那么你将会在后期的维护中发现这样那样的问题 ....... 做过一段时间android 开发的同学都知道,一般 on ...

  7. POJ 1696 Space Ant 卷包裹法

    Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3316   Accepted: 2118 Descrip ...

  8. 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移

    在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...

  9. dede当前位置各种写法

    方法一.Dedecms当前位置{dede:field name='position'/} 方法二.dede:field name='position' runphp='yes'}          $ ...

  10. Linq101-QueryExecution

    using System; using System.Linq; namespace Linq101 { class QueryExecution { /// <summary> /// ...