HDU 1754
来源:互联网 发布:windows10网络驱动下载 编辑:程序博客网 时间:2024/05/04 12:05
/*HDU 1754单点更新区间最值*/#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define lson (pos<<1)#define rson (pos<<1|1)const int maxn = 222222;int sum[maxn << 2];void pushup(int pos){ sum[pos] = max(sum[lson] , sum[rson]);}void build(int l,int r,int pos){ if(l == r){ scanf("%d",&sum[pos]); return; } int mid = (l + r) >> 1; build(l,mid,lson); build(mid + 1,r,rson); pushup(pos);}void update(int L,int R,int m,int pos,int d){ if(L == R){ sum[pos] = d; return; } int mid = (L + R) >> 1; if(m <= mid) update(L,mid,m,lson,d); else update(mid + 1,R,m,rson,d); pushup(pos);}int query(int L,int R,int l,int r,int pos){ if(l <= L && R <= r) return sum[pos]; int mid = (L + R) >> 1; int ans = 0; if(l <= mid) ans = max(ans,query(L,mid,l,r,lson)); if(r > mid) ans = max(ans,query(mid + 1,R,l,r,rson)); return ans;}int main(){ int n,m; while(scanf("%d%d",&n,&m) != EOF){ build(1,n,1); for(int i = 0; i < m; i++){ char op[10]; int a,b; scanf("%s",op); if(op[0] == 'U'){ scanf("%d%d",&a,&b); update(1,n,a,1,b); } else{ scanf("%d%d",&a,&b); printf("%d\n",query(1,n,a,b,1)); } } } return 0;}
0 0
- hdu 1754
- hdu 1754
- hdu 1754
- HDU 1754
- hdu 1754
- HDU 1754
- hdu 1754
- hdu 1754
- hdu 1754
- HDU 1754
- hdu 1754
- hdu 1754
- hdu 1754
- hdu 1754
- hdu 1754
- HDU 1754
- hdu 1754
- hdu 1754
- kettle
- CDE前台组件CCC的介绍
- Binary Tree Level Order Traversal C++题解
- Pentaho Report Designer 隔行变色的设置
- [置顶] Pentaho CDE 教程(四)走进CDE 之 饼图高级设置
- HDU 1754
- [置顶] Pentaho CDE 教程(五)走进CDE 之 柱状图高级设置
- UVA - 10375 - Choose and divide (组合数)
- zabbix 的小问题汇总
- CSU 1580Outing 强连通+背包
- 黑马程序员__修饰符
- iOS OpenGL ES 优秀系列教程
- 在zend studio 中应用配置layout
- CCGLProgram简单配置及应用(cocos2dx-lua-v2.2.5)