HDU 1754 I Hate It(线段树)
来源:互联网 发布:网络市场调研的对象 编辑:程序博客网 时间:2024/05/21 13:55
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754
#include <stdio.h>int max(int a, int b){ return a>b ? a:b;}int data[200005];typedef struct{ int l,r,maxn;} stu;stu T[1000010];void Build(int t,int l,int r){ T[t].l = l; T[t].r = r; int m = (l+r) / 2; if(l == r) { T[t].maxn = data[l]; return ; } Build(2*t,l,m); Build(2*t+1,m+1,r); T[t].maxn = max(T[2*t].maxn,T[2*t+1].maxn);}int Query(int t,int x,int y){ int l = T[t].l; int r = T[t].r; if(l == x && r == y) return T[t].maxn; int m = (l+r)/2; if(x <= m && y <= m)//如果给出区间全部属于左孩子 return Query(2*t,x,y);//查询左孩子 //否则,如果全都属于右孩子,查询右孩子 else if(x > m) return Query(2*t+1,x,y); //否则,如果部分在左孩子,部分在右孩子 else return max(Query(2*t,x,m),Query(2*t+1,m+1,y));}void Updata(int t, int x, int der){ int l,r,m; l = T[t].l; r = T[t].r; m = (l+r)/2; if(l == r) { T[t].maxn = der; return ; } if(x <= m) Updata(2*t,x,der);//如果要修改的节点在左孩子区间内 else Updata(2*t+1,x,der);//右孩子 //更新 T[t].maxn = max(T[2*t].maxn,T[2*t+1].maxn);}int main(){ int m,n,a,b; int i; char c; while(scanf("%d%d",&n,&m) != EOF){ for(i = 1;i <= n;i++){ scanf("%d",&data[i]); } Build(1,1,n); for(i = 0;i < m;i++){ getchar(); scanf("%c%d%d",&c,&a,&b); if(c == 'Q'){ if(a > b){ int tem = a; a = b; b = tem; } printf("%d\n",Query(1,a,b)); } else{ Updata(1,a,b); } } } return 0;}
0 0
- HDU 1754 I Hate It 线段树
- [hdu] 1754 I hate it -- 线段树
- hdu 1754 -- I Hate It (线段树)
- HDU 1754 I Hate It 线段树
- 线段树 hdu 1754 I Hate It
- HDU 1754 I Hate It(线段树)
- hdu 1754 (线段树)I Hate It
- hdu-1754 I Hate It 线段树
- HDU--1754 -- I Hate It [线段树]
- 【线段树】hdu 1754 I hate it
- hdu - 1754 I Hate It(线段树)
- HDU--1754--I Hate It--线段树
- HDU-1754 I Hate It 线段树
- hdu 1754 I Hate It 线段树
- HDU-1754-I Hate It(线段树)
- HDU 1754 I Hate It (线段树)
- hdu 1754 I hate it(线段树)
- 【HDU】 1754 I Hate It 线段树
- ExecutorService的execute和submit方法
- 【转载】论文笔记 《Object detection via a multi-region & semantic segmentation-aware CNN model》
- Ubuntu16.04 wine的使用
- GDOI2016总结
- Android 中 ViewPager+Fragment关于fragment的数据更新
- HDU 1754 I Hate It(线段树)
- ssh免密码登录配置要点
- int i=1; main() {int i=i;}有什么错?
- Boring Counting——【SDUT2610】主席树
- python中list去重复
- php curl常用的5个例子
- WSDL文件生成
- Unity 3d Shader实践 —— 第一个Shader
- linux文件权限