I Hate It

来源:互联网 发布:阿里云oss 七牛 编辑:程序博客网 时间:2024/06/14 06:15

http://acm.hdu.edu.cn/showproblem.php?pid=1754


#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;const int maxn=200005;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(l,m,rt<<1);build(m+1,r,rt<<1|1);PushUP(rt);}void update(int p,int fen,int l,int r,int rt){if(l==r){Max[rt]=fen;return;}int m=(l+r)>>1;if(p<=m) update(p,fen,l,m,rt<<1);else update(p,fen,m+1,r,rt<<1|1);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,l,m,rt<<1));if(R>m) ret=max(ret,query(L,R,m+1,r,rt<<1|1));return ret;}int main(int argc, char *argv[]){int n,m;while(scanf("%d%d",&n,&m)==2){build(1,n,1);while(m--){char str[10];int a,b;scanf("%s%d%d",str,&a,&b);if(str[0]=='Q') printf("%d\n",query(a,b,1,n,1));else update(a,b,1,n,1);}}return 0;}


0 0
原创粉丝点击