hdu 1754 I Hate It 线段树Test
来源:互联网 发布:数据库的事务 编辑:程序博客网 时间:2024/06/05 18:48
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1754
#include <iostream>#include <cstdio>using namespace std;#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1const int MAXN = 200010;int MaxNum[MAXN<<2];int MAX(int a, int b){ return a > b ? a : b;}void Push_Up(int rt){ MaxNum[rt] = MAX(MaxNum[rt<<1], MaxNum[rt<<1|1]);}void Build_Tree(int l, int r, int rt){ if(l == r) { scanf("%d", &MaxNum[rt]); return ; } int m = (l+r)>>1; Build_Tree(lson); Build_Tree(rson); Push_Up(rt);}void UFSet(int pos, int data, int l, int r, int rt){ if(l == r) { MaxNum[rt] = data; return ; } int m = (l+r)>>1; if(pos <= m) UFSet(pos, data, lson); else UFSet(pos, data, rson); Push_Up(rt);}int Query_Tree(int L, int R, int l, int r, int rt){ if(L <= l && R >= r) return MaxNum[rt]; int m = (l+r) >> 1; int res = 0; if(L <= m) res = MAX(res, Query_Tree(L, R, lson)); if(R > m) res = MAX(res, Query_Tree(L, R, rson)); return res;}int main(){ int n, oper; char c[2]; int a, b; while(~scanf("%d %d", &n, &oper)) { Build_Tree(1, n, 1); while(oper--) { scanf("%s%d %d", c, &a, &b); if(c[0] == 'Q') printf("%d\n", Query_Tree(a, b, 1, n, 1)); else UFSet(a, b, 1, n, 1); } } return 0;}
- hdu 1754 I Hate It 线段树Test
- 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(线段树)
- xStream完美转换XML、JSON
- 周鸿祎:给那些仍旧在公司混日子的人
- SVN 学习笔记二(一口气学会SVN)
- 威胁建模
- SQLite分页查询
- hdu 1754 I Hate It 线段树Test
- flex air 图标和启动图像
- 写在前边
- SVN学习笔记三 (SVN高级操作 上)
- 微信公众帐号自定义菜单创建及事件响应开发教程 附java源代码
- 第十周自由练习项目——输入三个数从小到大依次输出
- SVN 学习笔记三 (SVN高级操作下)
- android 下载通知栏中进度条的制作
- pthread_cancel 线程取消以及锁的释放