# I Hate It

Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 66074    Accepted Submission(s): 25697

Problem Description

Input

Output

Sample Input
5 6 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 2 9 Q 1 5

Sample Output
5 6 5 9
Hint
Huge input,the C function scanf() will work better than cin

Author
linle

Source

Recommend
lcy   |   We have carefully selected several similar problems for you:  1698 1542 1394 2795 1540

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N = 200000+10;
struct node {
int left,right;
int big;
} s[N*4];
int a[N];
void build(int v,int l,int r) {
s[v].left=l;
s[v].right=r;
if(l==r) {
s[v].big=a[l];
return ;
}
int mid=l+r>>1;
build(v<<1,l,mid);
build((v<<1)|1,mid+1,r);
s[v].big=max(s[v<<1].big,s[(v<<1)|1].big);
}
void update(int v,int x,int y) {
int l=s[v].left;
int r=s[v].right;
if(l==x&&r==x) {
s[v].big=max(s[v].big,y);
return ;
}
int mid=l+r>>1;
if(x<=mid) {
update(v<<1,x,y);
} else {
update((v<<1)|1,x,y);
}
s[v].big=max(s[v].big,y);
}
int Query(int v,int x,int y) {
int l=s[v].left;
int r=s[v].right;
if(l==x&&r==y) {
return s[v].big;
}
int mid=l+r>>1;
if(y<=mid) {
Query(v<<1,x,y);
} else if(x>mid) {
Query((v<<1)|1,x,y);
} else {
return max(Query(v<<1,x,mid),Query((v<<1)|1,mid+1,y));
}
}
int main() {
int n,m;
while(scanf("%d%d",&n,&m)!=EOF) {
for(int i=1; i<=n; i++) {
scanf("%d",&a[i]);
}
build(1,1,n);
char c[5];
int x,y;
while(m--) {
scanf("%s",c);
scanf("%d%d",&x,&y);
if(c[0]=='U') {
update(1,x,y);
} else {
printf("%d\n",Query(1,x,y));
}
}
}
return 0;
}

• 本文已收录于以下专栏：

## 杭电 hdu 1754 I Hate It （线段树 + 详细注释）

/* THE PROGRAM IS MADE BY PYY */ /*-----------------------------------------------------------------...
• panyanyany
• 2011年09月14日 22:23
• 5918

## HDU I hate it（线段树）

I Hate It Time Limit : 9000/3000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Tot...
• Wiking__acm
• 2012年07月16日 20:17
• 3215

## 杭电 HDU ACM 1754 I Hate It （线段树）

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
• lsgqjh
• 2015年07月01日 10:13
• 852

## I hate it （线段树）

B - I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi...
• u013497977
• 2015年07月22日 23:54
• 820

## HDU 1754 I Hate It 基础线段树

• youngyangyang04
• 2014年07月26日 10:58
• 872

## hdoj 1754 I Hate It(线段树)

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...
• u011606503
• 2014年07月17日 22:09
• 245

## [ACM] hdu 1754 I Hate It （线段树，单点更新）

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...
• sr19930829
• 2014年04月16日 19:21
• 1501

## hdu1754 I hate it （线段树）

I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot...
• d_x_d
• 2015年12月11日 11:10
• 2153

## 杭电1754 I Hate It

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
• bluedream1219
• 2014年07月21日 17:14
• 579

## hdu-1754 I Hate It（线段树求区间最大值）

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...
• acm_cxq
• 2016年03月15日 13:14
• 575

举报原因： 您举报文章：【杭电oj1754】I Hate It 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)