hdu 1754 I hate it (线段树)
来源:互联网 发布:vscode怎么编译运行 编辑:程序博客网 时间:2024/06/01 10:48
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。
这让很多学生很反感。
不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
Input
本题目包含多组测试,请处理到文件结束。
在每个测试的第一行,有两个正整数 N 和 M ( 0
#include <conio.h>#include <cstdio>#include <cstring>#define max(a,b) a>b?a:b#define min(a,b) a>b?b:ausing namespace std;const int N = 201010;int arr[N*20],ll[N*20],rr[N*20],sum[N*20];void build(int rt,int l,int r){ ll[rt]=l; rr[rt]=r; if(l==r) { sum[rt]=arr[l]; return ; } int m=(l+r)>>1; build(rt<<1,l,m); build(rt<<1|1,m+1,r); sum[rt]=max(sum[rt<<1],sum[rt<<1|1]);}void update(int rt,int d,int c){ if(rr[rt]<d||ll[rt]>d) return ; if(rr[rt]==ll[rt]&&rr[rt]==d) { sum[rt]=c; return ; } int m=(ll[rt]+rr[rt])>>1; if(d<=m) update(rt<<1,d,c); else update(rt<<1|1,d,c); sum[rt]=max(sum[rt<<1],sum[rt<<1|1]);}int query(int L,int R,int rt){ if(L<=ll[rt]&&R>=rr[rt]) { return sum[rt]; } // if(L>rr[rt]||R<ll[rt]) // return 0; int m=(ll[rt]+rr[rt])>>1; if(R<=m) return query(L,R,rt<<1); else if(L>m) return query(L,R,rt<<1|1); else{ int a,b; a=query(L,m,rt<<1); b=query(m+1,R,rt<<1|1); return max(a,b); }}int main(){ int n,m,a,b; char cmp; while(scanf("%d%d",&n,&m)!=EOF) { memset(sum,0,sizeof(sum)); for(int i=1;i<=n;i++) scanf("%d",&arr[i]); build(1,1,n); for(int i=0;i<m;i++) { scanf(" %c%d%d",&cmp,&a,&b); if(cmp=='Q') printf("%d\n",query(a,b,1) ); else update(1,a,b); } }}
0 0
- HDU 1754 I Hate It 线段树
- [hdu] 1754 I hate it -- 线段树
- hdu 1754 -- I Hate It (线段树)
- HDU 1754 I Hate It 线段树
- 线段树 hdu 1754 I Hate It
- HDU 1754 I Hate It(线段树)
- hdu 1754 (线段树)I Hate It
- hdu-1754 I Hate It 线段树
- HDU--1754 -- I Hate It [线段树]
- 【线段树】hdu 1754 I hate it
- hdu - 1754 I Hate It(线段树)
- HDU--1754--I Hate It--线段树
- HDU-1754 I Hate It 线段树
- hdu 1754 I Hate It 线段树
- HDU-1754-I Hate It(线段树)
- HDU 1754 I Hate It (线段树)
- hdu 1754 I hate it(线段树)
- 【HDU】 1754 I Hate It 线段树
- 关于腾讯通(RTX)服务器端和客户端的安装设置及其报错
- 谈谈对Spring IOC的理解
- java异常处理
- Android应用间通讯和数据共享
- 从键盘上输入任意的正整数,编程判断该数是否为回文数。 所谓的回文数就是从左到右读这个数与从右到左读这个数是一样的。 例如,12321 , 4004都是回文数。
- hdu 1754 I hate it (线段树)
- C#6.0 新新特性
- ajax实现二级联动
- linux正则表达式语法
- 人脸检测/Harr分类器
- iOS 获取判断手机屏幕尺寸,并判断手机系统版本
- 七牛云文件上传
- iOS图像文字识别
- 苹果