线段树求区间最大值RMQ(单点更新)
来源:互联网 发布:lr软件最新版本 编辑:程序博客网 时间:2024/04/28 04:08
题目:HDU1754
#include <stdio.h>#define maxn 222222#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1int MAX[maxn<<2];int max(int a,int b){ return a>b? a:b;}void PushUP(int rt){ MAX[rt]=max(MAX[rt<<1],MAX[rt<<1|1]);}void Build(int l,int r,int rt){ if(l==r) { scanf("%d",&MAX[rt]); return; } int m=(l+r)>>1; Build(lson); Build(rson); PushUP(rt);}void Update(int p,int add,int l,int r,int rt){ if(l==r) { MAX[rt]=add; return; } int m=(l+r)>>1; if(p<=m) Update(p,add,lson); else Update(p,add,rson); PushUP(rt);}int Query(int L,int R,int l,int r,int rt){ if(L<=l&&R>=r) return MAX[rt]; int m=(l+r)>>1; int ret=0; if(L<=m) ret=max(ret,Query(L,R,lson)); if(R>m) ret=max(ret,Query(L,R,rson)); return ret;}int main(){ int N,M; char s[5]; while(~scanf("%d%d",&N,&M)) { Build(1,N,1); while(M--) { int a,b; scanf("%s%d%d",s,&a,&b); if(s[0]=='Q') printf("%d\n",Query(a,b,1,N,1)); else Update(a,b,1,N,1); } } return 0;}
- 线段树求区间最大值RMQ(单点更新)
- 线段树(单点更新,区间求最大值)
- HDU 2795 Billboard (线段树 单点更新 区间求最大值)
- HDU2795 线段树 单点更新 区间最大值
- Uva 12299 线段树求区间最小值(RMQ) 区间查询单点更新
- 线段树学习笔记(单点更新+区间查询最大值+lazy标记+pushdown操作+区间更新+求区间和)
- 线段树求区间和(单点更新)
- 线段树 单点更新求区间和
- hdu1556 线段树区间更新 求单点
- HDOJ 题目1754 I Hate It(线段树单点更新,求区间最大值)
- HDU 1754 I Hate It(线段树:单点更新,求区间最大值)
- HDOJ 1754 I Hate It(线段树—求区间最大值与单点更新)
- HDOJ 1754 I Hate It (线段树单点更新求区间最大值)
- hdu 1754 I Hate It(线段树单点更新求区间最大值)
- poj 1754 I Hate It --线段树(单点更新,区间求最大值)
- 蓝桥杯算法训练——操作格子(线段树+单点更新+区间求和+求最大值)
- HDOJ 2795 Billboard (线段树 + 单点更新,求区间最大值)
- 12299 - RMQ with Shifts(线段树单点更新、区间求最值)
- webbrowser滚动条问题
- poj2240--Arbitrage--Bellmand-Ford算法
- 寒假后续刷题——回文与镜像文
- 如何成为一名程序员:我的道路
- 遮罩层样式
- 线段树求区间最大值RMQ(单点更新)
- 使用svm的一个常见错误
- 2012年毕业的孩子 小小的工作总结 2013年的这个时候再看这篇文章会是什么想法呢?
- J2EE实现自动登录功能(阅读后感觉很好,所以果断转载!)
- android基础学习<二>--->Activity的来龙去脉
- Drupal网站维护:关闭网站后如何进行用户登录
- 你有福气吗?
- 初学安装oracle全部过程图文教程
- 如何实现不依靠中间量实现两个变量值的交换