http://www.notonlysuccess.com/index.php/segment-tree-complete/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define maxn 2222222
using namespace std;
int a[maxn<<2];
void pushUp(int rt)
{
a[rt]=max(a[rt<<1],a[rt<<1|1]);
}
void build(int l,int r,int rt)
{
if(l==r)
{
scanf("%d",&a[rt]);
return ;
}
int m=(r+l)>>1;
build(lson);
build(rson);
pushUp(rt);
}
void update(int p,int sc,int l,int r,int rt)
{
if(l==r)
{
a[rt]=sc;
return;
}
int m=(l+r)>>1;
if(p<=m) update(p,sc,lson);
else update(p,sc,rson);
pushUp(rt);
}
int query(int L,int R,int l,int r,int rt)
{
int x=0;
if(L<=l&&r<=R)
return a[rt];
int m=(r+l)>>1;
if(L<=m) x=max(x,query(L,R,lson));
if(R>m) x=max(x,query(L,R,rson));
return x;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
build(1,n,1);
char c[2];
int d,e;
for(int i=0; i<m; i++)
{
scanf("%s%d%d",c,&d,&e);
if(c[0]=='Q')
{
printf("%d\n",query(d,e,1,n,1));
}
if(c[0]=='U')
{
update(d,e,1,n,1);
}
}
}
return 0;
}

最新文章

  1. jieba分词
  2. cookie以及cookie的作用
  3. #define is unsafe——I
  4. .net System.TypeInitializationException 类型初始值设定项引发异常
  5. centos6.2下搭建Web服务器
  6. 遗传算法GA
  7. Tomcat Server处理一个http请求过程
  8. IDEA插件和快捷设置
  9. java Servlet文件拷贝的模板代码
  10. 转载 AutoFac常见用法总结
  11. docker save 批量导出脚本
  12. Keepalived+Nginx高可用架构配置
  13. .NetCore 发布到 Centos docker
  14. BZOJ2648 SJY摆棋子(KD-Tree)
  15. Docker Dockerfile简述
  16. Javascript 面向对象-继承
  17. js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
  18. 深入了解 Session 与 Cookie
  19. 进程一些命令pstree,ps,pstack,top
  20. Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)

热门文章

  1. 17、lambda表达式
  2. VS2008执行MFC程序,提示microsoft incremental linker已停止工作解决方法
  3. mysql安装,数据库连接
  4. javascript系列-class2.javascript 基本使用
  5. 使用NFS共享硬盘
  6. Redis常用命令速查 &lt;第二篇&gt;【转】
  7. 银行bank系统项目实践
  8. 51nod 1098 最小方差 排序+前缀和+期望方差公式
  9. HDU 1754 I Hate It【线段树 单点更新】
  10. js或者jq 使用cookie 时在谷歌浏览器不好使