HDU 1754 I Hate It(线段树-区间求最值&&单点修改)
来源:互联网 发布:摇钱树计费软件 编辑:程序博客网 时间:2024/05/17 01:10
线段树基础题,区间最值,单点修改
细节参见代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))using namespace std;typedef long long ll;const double PI = acos(-1.0);const double eps = 1e-6;const int INF = 1000000000;const int maxn = 300000+10;int T,n,A,B,m,maxv[maxn<<1];void push_up(int o) { maxv[o] = max(maxv[o<<1],maxv[o<<1|1]);}void build(int l, int r, int o) { int m = (l + r) >> 1; if(l == r) { scanf("%d",&maxv[o]); return ; } build(l, m, o<<1); build(m+1, r, o<<1|1); push_up(o);}void update(int p, int v, int l, int r, int o) { int m = (l + r) >> 1; if(l == r) { maxv[o] = v; return ; } if(p <= m) update(p, v, l, m, o<<1); else update(p, v, m+1, r, o<<1|1); push_up(o);}int query(int L, int R, int l, int r, int o) { int m = (l + r) >> 1, ans = -INF; if(L <= l && r <= R) { return maxv[o]; } if(m >= L) ans = max(ans, query(L, R, l, m, o<<1)); if(m+1 <= R) ans = max(ans, query(L, R, m+1, r, o<<1|1)); return ans;}char s[10];int main() { while(~scanf("%d%d",&n,&m)) { build(1,n,1); while(m--) { scanf("%s%d%d",s,&A,&B); if(s[0] == 'Q') printf("%d\n",query(A,B,1,n,1)); else update(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 (线段树裸题 splay模板 单点修改 区间询问最大值)
- 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 ----->线段树(区间最值,单点更新)
- 实践centos6.5编译安装LNMP架构web环境
- [手势与触摸]创建可以拖动的视图
- Android Fragment 基本介绍及其生命周期讲解
- sql中常用函数的用法
- oracle 11g用户名密码区分大小写
- HDU 1754 I Hate It(线段树-区间求最值&&单点修改)
- 关闭eclipse自动弹出console功能
- 条件选择结构<1>__笔记(3)
- Redis 集群规范
- iOS小技巧15-改变UITabBarItem 字体颜色
- hdoj 1254 推箱子 【BFS+DFS】
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Android 内存泄漏分析工具LeakCanary
- php让你头疼的浮点数运算