线段树单点更新区间最大值 hdoj1754I Hate It
来源:互联网 发布:东南亚 知乎 编辑:程序博客网 时间:2024/05/16 14:58
题目:hdoj1754 I Hate It
分析:更新的话,建树的时候保存叶子编号的的节点信息,然后从下往上更新就ok。
求和的话,从根节点开始,然后找在根的左边还是右边,然后递归找一个所有中的最大值即可、
代码:
#include <cstdio>#include <algorithm>#include <iostream>using namespace std;const int N = 205000;struct Node{ int l,r; int sum;};Node tree[4*N];int a[N];int fa[N];void build(int l,int r,int v){ tree[v].l=l; tree[v].r=r; if(l==r) { fa[l]=v; tree[v].sum=a[l]; return ; } int mid=(l+r)>>1; build(l,mid,v*2); build(mid+1,r,v*2+1); tree[v].sum=max(tree[v+v].sum,tree[v+v+1].sum);}void update(int t,int p,int x){ if(tree[t].sum<p) tree[t].sum=p; if(t==1) return ; update(t/2,p,x);}int queue(int a,int b,int v){ if(tree[v].l==a&&tree[v].r==b) { return tree[v].sum; } int mid=(tree[v].l+tree[v].r)>>1; if(b<=mid) return queue(a,b,v+v); else if(a>mid) return queue(a,b,v+v+1); else return max(queue(a,mid,v*2),queue(mid+1,b,v*2+1));}int main(){ //freopen("a.txt","r",stdin); int n,m; while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); build(1,n,1); while(m--) { char c; int x,y; scanf("%*c%c",&c); scanf("%d%d",&x,&y); if(c=='Q') printf("%d\n",queue(x,y,1)); else if(c=='U') update(fa[x],y,x); } } return 0;}
0 0
- 线段树单点更新区间最大值 hdoj1754I Hate It
- HDU1754 I Hate It(线段树单点更新,区间最大值,zkw线段树)
- HDU 1754 I Hate It(线段树 单点更新 区间最大值)
- 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 --线段树(单点更新,区间求最大值)
- HDU1754(I hate it!--线段树单点更新,查找最大值)
- hdu1754I Hate It(线段树---单点更新,区间求值)
- 单点更新查询区间最大值 hdu1754 I hate it
- I Hate It 树状数组 单点更新 区间最大值
- HDU 1754 I Hate It(线段树--单点赋值, 区间求最大值)
- 线段树部分总结 (单点,区间)更新,区间求和,求最大值(敌兵布阵&I Hate It&A Simple Problem with Integers)
- HDU1754_I Hate It(线段树/单点更新)
- HDU1754 I Hate It 线段树 区间更新 区间查找 最大值
- hdu1754——I Hate It(线段树,单点更新,求最大值)
- STM32的SDIO-WIFI资料归纳
- 如何快速提高Ecshop二次开发效率
- html表单提交的几种方法
- png图片的简单介绍, 使用libpng读取内容,用于纹理贴图
- uva Stacks of Flapjacks
- 线段树单点更新区间最大值 hdoj1754I Hate It
- DOS学习之道:怎样使用DOS命令
- [leetcode] Add Binary
- MYSQL中的my.ini或my.cnf配置说明
- 3-类、对象和方法
- zoj1163 The Staircases
- 特殊浮点数1.#IND 1.#INF的判断 (
- 【FTP工具】8UFTP工具是我自己比较经常用的,推荐。
- crm操作约会实体