HDU 1754 I Hate It(基础线段树~)
来源:互联网 发布:如何给给淘宝号升级 编辑:程序博客网 时间:2024/06/10 02:26
#include <cstdio>#include <cstring>#include <iostream>using namespace std;#define lson l, m, rt << 1#define rson m + 1, r, (rt << 1) | 1#define INF 0x3f3f3fint tree[200005 * 8], maxn;void pushup(int rt){ tree[rt] = max(tree[rt << 1], tree[(rt << 1) | 1]);}int Query(int L, int R, int l, int r, int rt){ if (L <= l && r <= R) return tree[rt]; else { int m = (l + r) >> 1; int ans = maxn; if (L <= m) { ans = max(ans, Query(L, R, lson)); } if (R > m) { ans = max(ans, Query(L, R, rson)); } return ans; }}void update(int pos, int val, int l, int r, int rt){ if (l == r) tree[rt] = val; else { int m = (l + r) >> 1; if (pos <= m) update(pos, val, lson); else update(pos, val, rson); pushup(rt); }}void build(int l, int r, int rt){ if (l == r) { scanf("%d", &tree[rt]); return; } else { int m = (l + r) >> 1; build(lson); build(rson); pushup(rt); }}int main(void){ int n, m; while (~scanf("%d%d", &n, &m)) { memset(tree, 0, sizeof(tree)); build(1, n, 1); while (m--) { maxn = -INF; char s[30]; int a, b; scanf("%s", s); scanf("%d%d", &a, &b); if (s[0] == 'U') update(a, b, 1, n, 1); if (s[0] == 'Q') printf("%d\n", Query(a, b, 1, n, 1)); } } 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--线段树
- jsp
- 【GDOI2017模拟9.9】[IOI2007]偶环
- 51nod 1791 合法括号子段(模拟)
- 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典(DP)
- delete和析构函数间的关系及细节
- HDU 1754 I Hate It(基础线段树~)
- 春思
- 基于python3的socket文件传输和校验
- 并行信号处理技术-序
- Graph Valid Tree
- HDU
- 多线程爬虫之糗事百科
- Git的简单使用
- spring学习笔记十五 切面的优先级