博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ1745 I hate it【线段树】
阅读量:6808 次
发布时间:2019-06-26

本文共 1420 字,大约阅读时间需要 4 分钟。

#include 
#include
#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define maxn 200001int Max[maxn<<2];void build(int l,int r,int rt){ int m; if (l==r) { scanf("%d",&Max[rt]); return; } m=((l+r)>>1); build(lson); build(rson); Max[rt]=max(Max[rt<<1],Max[rt<<1|1]);}void update(int p,int updt,int l,int r,int rt){ int m; if(l==r) { Max[rt]=updt; return; } m=((l+r)>>1); if (p<=m) update(p,updt,lson); else update(p,updt,rson); Max[rt]=max(Max[rt<<1],Max[rt<<1|1]);}int query(int L,int R,int l,int r,int rt){ int m,ret=0,maxl,maxr; if (L<=l&&R>=r) return Max[rt]; m=((l+r)>>1); if (R<=m) ret=query(L,R,lson); else if(L>m) ret=query(L,R,rson); else { maxl=query(L,m,lson); maxr=query(m+1,R,rson); ret=max(maxl,maxr); } return ret;}int main(){ int n,a,b,m,i; char op[2]; while (scanf("%d%d",&n,&m)!=EOF) { build(1,n,1); while (m--) { scanf("%s%d%d",op,&a,&b); if(op[0]=='Q') printf("%d\n",query(a,b,1,n,1)); else if(op[0]=='U') update(a,b,1,n,1); } } return 0;}

 

本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/04/28/2475489.html,如需转载请自行联系原作者

你可能感兴趣的文章
Apache 配置里面使用 Win32DisableAcceptEx ,Apache 启动不了
查看>>
新装好SQL2005时SA无法登陆的解决办法
查看>>
只返回一个实例的类
查看>>
企业如何培养新型员工队伍
查看>>
一道笔试题
查看>>
自定义一个序列化表单的方法2+提示语
查看>>
C#正则表达式获取html标签之间的内容
查看>>
Spring4新特性——泛型限定式依赖注入
查看>>
Tomcat(一):基础配置详解
查看>>
网页后门危害大 网站安全狗帮助查杀
查看>>
Docker存储驱动之总览
查看>>
java获取当前系统时间
查看>>
Hibernate上路_18-Hibernate查询方式
查看>>
Linux vi 命令大全
查看>>
使用border制作的css三角形
查看>>
【转帖】Java并发编程:volatile关键字解析
查看>>
Tomcat 下面使用软连接指向真实的上传文件夹
查看>>
CSS3 动画、变形效果
查看>>
设置vim默认显示行号
查看>>
Java 问答:终极父类(第一部分)
查看>>