码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1754 I HATE IT

时间:2018-04-21 22:26:55      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:inf   lin   style   namespace   ==   update   str   tchar   return   

线段树板子。。无lazy。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<cstdlib>
 5 #include<algorithm>
 6 #include<cmath>
 7 #include<vector>
 8 using namespace std;
 9 #define mem(a,b) memset(a,b,sizeof(a))
10 #define ll long long
11 #define inf 1000000000
12 #define maxn 40000
13 #define eps 1e-12
14 #define mod 1000000007
15 #define N 3005
16 inline int read()
17 {
18     int x=0,f=1;char ch=getchar();
19     while(ch<0||ch>9) {if(ch==-) f=-1;ch=getchar();}
20     while(ch>=0&&ch<=9) {x=10*x+ch-0;ch=getchar();}
21     return x*f;
22 }
23 int tree[800005];
24 void build(int left,int right,int root)
25 {
26     if(left==right) tree[root]=read();
27     else{
28         int mid=(left+right)>>1;
29         build(left,mid,root<<1);
30         build(mid+1,right,root<<1|1);
31         tree[root]=max(tree[root<<1],tree[root<<1|1]);
32     }
33 }
34 void update(int p,int add,int left,int right,int root)
35 {
36     if(left==right) tree[root]=add;
37     else{
38         int mid=(left+right)>>1;
39         if(p<=mid) update(p,add,left,mid,root<<1);
40         else update(p,add,mid+1,right,root<<1|1);
41         tree[root]=max(tree[root<<1],tree[root<<1|1]);
42     }
43 }
44 int query(int x,int y,int left,int right,int root)
45 {
46     if(x<=left&&right<=y) return tree[root];
47     else{
48         int sum=0,mid=(left+right)>>1;
49         if(x<=mid) sum=max(sum,query(x,y,left,mid,root<<1));
50         if(y>mid) sum=max(sum,query(x,y,mid+1,right,root<<1|1)); 
51         return sum;
52     }
53 }
54 int main()
55 {
56     int n,m;
57     while(~scanf("%d%d",&n,&m))
58     {
59         build(1,n,1);
60         while(m--)
61         {
62             char op[3];  int x,y;
63             scanf("%s%d%d",op,&x,&y);
64             if(op[0]==U) update(x,y,1,n,1);
65             else printf("%d\n",query(x,y,1,n,1));
66         }
67     }
68     return 0;
69 }

 

HDU 1754 I HATE IT

标签:inf   lin   style   namespace   ==   update   str   tchar   return   

原文地址:https://www.cnblogs.com/TYH-TYH/p/8903918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!