#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<set>
#include<cmath>
#define lson r,m,rt<<1
#define rson m+1,r,rt<<1|1
const int maxn=55555;
using namespace std;
int lsum[maxn<<2],rsum[rt<<2],sum[rt<<2];
void pushUp(int rt,int m)
{
rsum[rt]=rsum[rt<<1|1];
lsum[rt]=lsum[rt<<1];
if(lsum[rt]==(m-m>>1))
lsum[rt]=lsum[rt]+lsum[rt<<1|1];
if(rsum[rt]==m>>1)
rsum[rt]=rsum[rt]+rsum[rt<<1];
sum[rt]=max(max(rsum[rt],lsum[rt]),max(max(sum[rt<<1],sum[rt<<1|1]),rsum[rt]+lsum[rt<<1|1]));
}
build(int l,int r,int rt)
{
if(l==r)
{
lsum[rt]=rsum[rt]=sum[rt]=1;
return ;
}
int m=(l+m)>>1;
build(lson);
build(rson);
pushUp(rt,r-l+1);
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
build(1,n,1);
for(int i=0;i<m;i++){
char str[10];
int d;
scanf("%s",str);
if(str[0]=='N')
update()
}
}
return 0;
}

hdu_2871的更多相关文章

  1. HDU_2871 线段树+vecor的中间插入和删除使用

    本来这个题目就是个合并区间的题,就跟Hotel一样,要插入一段,则找左孩子 合并后的中间区间 右孩子,但是比较恶心的是,他需要实时得到某一段的起终点,或者某个点在第几个段里面,我想过在线段树里面加入几 ...

随机推荐

  1. Linux下基于多线程的echo

    准备开始写一些Linux 下网络编程以及多线程的blog,就从这个简单的echo程序开始吧. 在echo的服务端使用多线程与客户进行通信,可以实现一个服务端程序同时连接多个客户的功能.那么,到底在服务 ...

  2. bzoj3626【LNOI2014】LCA

    3626: [LNOI2014]LCA Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1266  Solved: 448 [Submit][Stat ...

  3. ACM-ICPC Dhaka Regional 2012 题解

    B: Uva: 12582 - Wedding of Sultan 给定一个字符串(仅由大写字母构成)一个字母表示一个地点,经过这个点或离开这个点都输出这个地点的字母) 问: 每一个地点经过的次数(维 ...

  4. 通过setInterval函数在地图上每隔1s打一次点

    <?php echo <<<_END <!doctype html> <html> <head> <meta charset=&quo ...

  5. c语言运算符优先级与while循环案例

    sizeof可以获取数据类型的内存中的大小(字节) #include <stdio.h> #include <stdlib.h> // standared 标准 // inpu ...

  6. TabPage判断重复添加Page

    ..... ........ ...........代码如下: bool isPag = true; foreach (TabPage page in tbpDynamicMenu.TabPages) ...

  7. VisualStudio UnitTest FrameWork

    当创建单元测试时,Microsoft.VisualStudio.TestTools.UnitTesting的名字控件会添加到测试项目中,该名字控件中包含很多有用的类: 断言类:在单元测试中验证条件 初 ...

  8. js小结2

    1.includes和contains 对于字符串,数组来说,判断包含是includes,对classList是contains 2.编辑span内容,enter提交(如何避免keydown之后换行: ...

  9. eclipse oxygen离线安装activiti

    我用的最新版本的eclipse oxygen,结果通过help-->install new software-->add 一直报找不到,后来网上查找的离线安装,终于成功了,在这里和大家分享 ...

  10. VP红外遥控器实现

    要点: 1.设置外部中断为边沿触发(包含下降沿和上升沿),下降沿TimeOut=0,上升沿读取TimeOut计数. 2.定时器中TimeOut++,定时器定时中断周期为100us 3.红外的只有两种时 ...