【线段树】hdu 1754
2011-08-03 23:17
148 查看
树状数组不行呐,复杂度太高
#include <vector> #include <list> #include <map> #include <set> #include <queue> #include <string.h> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <limits.h> using namespace std; #define LL long long #define pi acos(-1) #define N 200010 #define INF INT_MAX #define eps 1e-8 //****************** //B //****************** struct node { int l,r; int mx; }tree[N*3]; int n,m; int big; void Build(int i,int s,int t) { tree[i].l=s; tree[i].r=t; tree[i].mx=0; if(s==t)return ; int mid=(s+t)>>1; Build(2*i,s,mid); Build(2*i+1,mid+1,t); } void update(int i,int pos,int y) { if(tree[i].l==pos &&tree[i].r==pos) tree[i].mx=y; else { int mid=(tree[i].l+tree[i].r)>>1; if(pos<=mid) update(2*i,pos,y); else update(2*i+1,pos,y); if(y>tree[i].mx) tree[i].mx=y; } } void ask(int i,int a,int b) { if(tree[i].l==a && tree[i].r==b) { if(big<tree[i].mx) big=tree[i].mx; } else { int mid=(tree[i].l+tree[i].r)>>1; if(b<=mid) ask(2*i,a,b); else if(a>mid) ask(2*i+1,a,b); else { ask(2*i,a,mid); ask(2*i+1,mid+1,b); } } } int main() { // freopen("a.txt","r",stdin); while(scanf("%d%d",&n,&m)!=EOF) { int i,j,k; Build(1,1,n); for(i=1;i<=n;++i) { int a; scanf("%d",&a); update(1,i,a); } char str[5]; while(m--) { scanf("%s",str); int a,b; scanf("%d%d",&a,&b); if(str[0]=='Q') { big=0; ask(1,a,b); printf("%d\n",big); }else if(str[0]=='U') update(1,a,b); } } return 0; }
相关文章推荐
- HDU1754-I hate it-线段树
- HDU_1754 I Hate It (线段树)
- hdu 1754 (线段树)
- HDU 1754 线段树
- hdu 1754 I Hate It(线段树)
- hdu 1754 Ihate it 线段树 单点替换和区间最值
- HDU---1754 I Hate It【线段树】
- hdu 1754 I Hate It 线段树-区间最值
- hdu1754线段树
- hdu 1754 线段树区间最大值 单点更新
- HDU1754 - I Hate It - 线段树维护区间最大值
- hdu 1754 线段树
- hdu 1754 线段树入门
- hdu 1754 I Hate It (线段树--求区间最大值)(基础)
- HDU 1754 I Hate It(线段树)
- HDU 1754 I Hate It(线段树模版…
- HDU 1754 I Hate It【线段树】
- HDU 1754 线段树+深搜 数据结构
- hdu 1754:I Hate It(线段树 单点更新+区间最值)
- hdu 1754 线段树 单点更新 动态区间最大值