HDU 1754 I Hate It(线段树,区间最大值)
来源:互联网 发布:mac sogo输入法 编辑:程序博客网 时间:2024/05/18 03:01
链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1754
分析与总结:
线段树求区间最大值,好像也没什么可讲的。
代码:
#include<iostream>#include<cstdio>#include<cstring>#define lson(x) (x<<1)#define rson(x) (lson(x)|1)using namespace std;typedef int Type;const int MAX_NODE = 200005<<2;struct node{ int left, right; Type val; int mid(){return (left+right)>>1;} bool buttom(){return left==right;}};class SegTree{public: void build(int cur,int left,int right){ t[cur].left = left; t[cur].right = right; if(left == right){ scanf("%d",&t[cur].val); return; } int m = t[cur].mid(); build(lson(cur),left,m); build(rson(cur),m+1,right); push_up(cur); } void update(int cur,int p,int data){ if(t[cur].buttom()){ t[cur].val = data; return; } int m = t[cur].mid(); if(p <= m) update(lson(cur),p,data); else update(rson(cur),p,data); push_up(cur); } int query(int cur,int left,int right){ if(t[cur].left==left && t[cur].right==right){ return t[cur].val; } int m = t[cur].mid(); if(right <= m) return query(lson(cur),left,right); else if(left > m) return query(rson(cur),left,right); else return max(query(lson(cur),left,m), query(rson(cur),m+1,right)); }private: void push_up(int cur){ t[cur].val = max(t[lson(cur)].val,t[rson(cur)].val); }private: node t[MAX_NODE];};SegTree st;int main(){ int n,m,x,y; char cmd[5]; while(~scanf("%d%d",&n,&m)){ st.build(1,1,n); for(int i=0; i<m; ++i){ scanf("%s %d %d",cmd,&x,&y); if(cmd[0] == 'Q') printf("%d\n", st.query(1,x,y)); else st.update(1,x,y); } } return 0;}
—— 生命的意义,在于赋予它意义士。
原创 http://blog.csdn.net/shuangde800 , By D_Double (转载请标明)
- 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【线段树求区间最大值】
- HDOJ 1754 I Hate It (线段树 & 区间最大值)
- 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(线段树求区间最大值)
- 线段树(区间最大值查询和点修改)——I Hate It ( HDU 1754 )
- hdu 1754 I Hate it(线段树的单节点更新,求区间最大值)
- hdu I hate it 区间最大值 线段树
- HDOJ 1754 I hate it(线段树+区间最大值)
- B - I Hate It HDU 1754 (线段树+区间)
- C#数据库查询和操作大全
- hdu 1755 A Number Puzzle
- C#打开Excel文档的两大方法解析
- josephus问题用链表来实现
- ARM工作模式
- HDU 1754 I Hate It(线段树,区间最大值)
- Hibernate基础之十:一对多关联的CRUD__@ManyToOne(cascade=(CascadeType.ALL))
- VMware中安装的Red Hat Enterprise Linux 5中文乱码
- linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
- 递归与分治之整数划分
- 高级 inline hook 技术
- C++实现观察者模式—2
- 十月7日
- hdu 3835 简单概率dp