线段树之HDU 1754 I hate it
来源:互联网 发布:windows键怎么关闭 编辑:程序博客网 时间:2024/05/21 18:39
题目:HDU 1754 I hate it!
//Must so#include<bits/stdc++.h>#define mem(a,x) memset(a,x,sizeof(a))#define sqrt(n) sqrt((double)n)#define pow(a,b) pow((double)a,(int)b)#define inf 1<<29#define NN 200006using namespace std;const double PI = acos(-1.0);typedef long long LL;struct Node{ int l,r,v;}q[NN*4];void buildtree(int i,int l,int r){ q[i].l = l,q[i].r = r; if (l == r) { scanf("%d",&q[i].v); return ; } int mid = (l+r)/2; buildtree(i<<1,l,mid); buildtree((i<<1)+1,mid+1,r); q[i].v = max(q[i<<1].v,q[(i<<1)+1].v);}void update (int i ,int a,int b){ if (q[i].l == q[i].r&&q[i].l == a) { q[i].v = b; return ; } if (a<=q[i<<1].r) update(i<<1,a,b); else update((i<<1)+1,a,b); q[i].v = max(q[i<<1].v,q[(i<<1)+1].v);}int query(int i,int l,int r){ if (l <= q[i].l&&q[i].r <= r) { return q[i].v; } int mid = (q[i].l+q[i].r)/2; if (r <= mid) return query(i<<1,l,r); else if (l > mid) return query((i<<1)+1,l,r); else return max(query(i<<1,l,mid),query((i<<1)+1,mid+1,r));}int main(){ int n,m; while (cin>>n>>m) { buildtree(1,1,n); while (m--) { char tmp; int a,b; cin>>tmp>>a>>b; if (tmp == 'Q') printf("%d\n",query(1,a,b)); else if (tmp == 'U') update(1,a,b); } } 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(线段树)
- Myeclipse+Tomcat运行网站
- Android环境搭建
- 杨辉三角
- 字母图形
- PyQt5 - QWidgets部件进阶教程之计算器
- 线段树之HDU 1754 I hate it
- 指示器(菊花效果)代码演示--iOS开发
- rrdtool的完整例子
- 阶乘计算
- Emacs录制宏
- 高精度计算
- HDU 1166 敌兵布阵(线段树&树状数组)
- Android BaseAnimation近200种动画效果源码
- 由SimpleAyncTaskExecutor到ListenableFutureTask