hdu1754
来源:互联网 发布:亚投行 日本 知乎 编辑:程序博客网 时间:2024/06/06 06:30
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;//hdu1754 线段树//单点替换 区间最值#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 | 1const int maxn = 200010;int MAX[maxn << 2];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 sc, int l, int r, int rt){ if(l == r) { MAX[rt] = sc; return ; } int m = (l + r) >> 1; if(p <= m) update(p, sc, lson); else update(p, sc, 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; while( ~scanf("%d%d", &n, &m) ) { build(1, n, 1); while(m--) { char op[2]; int a, b; scanf("%s%d%d", op, &a, &b); if(op[0] == 'Q') printf("%d\n", query(a, b, 1, n, 1)); else update(a, b, 1, n, 1); } } return 0;}
0 0
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- HDU1754
- hdu1754
- HDU1754
- HDU1754
- hdu1754
- hdu1754
- HDU1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- hdu1754
- HDU1754
- QT 国际化扩展所感 an extending QT Translator (自己实现翻译逻辑,编辑更方便)
- wordpress作者的相关函数调用代码
- gdb: value optimized out
- java集合类HashMap获取键和值
- 拷贝构造函数和赋值函数
- hdu1754
- 只是来报个到
- JSTL 标签获得jsp页面上定义的变量
- Nandflash和norflash的区别
- 【matlab学习笔记】长矩阵分割
- rt5350 中断处理分析
- getaddrinfo()函数详解
- UVA 11404 Palindromic Subsequence
- Django学习笔记(五)—— 表单