链接:点击打开链接

题意:在每个测试的第一行,有两个正整数N和M(0<N<=200000,0<M<5000),分别代表学生的数目和操作的数目
学生ID编号分别从1编到N
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来有M行.每一行有一个字符C(只取'Q'或'U') ,和两个正整数A,B
当C为'Q'的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少
当C为'U'的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B.
对于每一次询问操作,在一行里面输出最高成绩

代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int siz=200005;
int tree[siz<<2];
void build(int l,int r,int rt){if(l==r){scanf("%d",&tree[rt]);return;}int m=(l+r)>>1;build(l,m,rt<<1);build(m+1,r,rt<<1|1);tree[rt]=max(tree[rt<<1],tree[rt<<1|1]);
}
void Change(int p,int q,int l,int r,int rt){if(l==r){tree[rt]=q;return;}int m=(l+r)>>1;if(p<=m)Change(p,q,l,m,rt<<1);elseChange(p,q,m+1,r,rt<<1|1);tree[rt]=max(tree[rt<<1],tree[rt<<1|1]);
}
int query(int L,int R,int l,int r,int rt){if(L<=l&&r<=R)return tree[rt];int ans=0,m=(l+r)>>1;if(L<=m)ans=max(ans,query(L,R,l,m,rt<<1));if(R>m)ans=max(ans,query(L,R,m+1,r,rt<<1|1));return ans;
}
int main(){                                     //单点更新求区间最值模板题char c;int n,m,i,j,u,v;while(scanf("%d%d",&n,&m)!=EOF){build(1,n,1);while(m--){cin>>c>>u>>v;if(c=='Q')printf("%d\n",query(u,v,1,n,1));elseChange(u,v,1,n,1);}}return 0;
}

hdu1754(线段树单点更新)相关推荐

  1. HDU - 1166敌兵布阵+HDU-1754 I Hate It (线段树单点更新——累加/最大值)

    线段树单点更新,模板题 HDU1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...

  2. HDUOJ----1166敌兵布阵(线段树单点更新)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)

    题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  4. 【原创】tyvj1038 忠诚 计蒜客 管家的忠诚 线段树(单点更新,区间查询)...

    [原创]tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询) 最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不 ...

  5. FZU 2297 Number theory【线段树/单点更新/思维】

    Given a integers x = 1, you have to apply Q (Q ≤ 100000) operations: Multiply, Divide. Input First l ...

  6. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  7. 线段树——单点更新(二)

    HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...

  8. CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化

    题目链接: http://codeforces.com/contest/19/problem/D 题意: 有三种操作"add x y"往平面上添加(x,y)这个点,"re ...

  9. hdu4046 不错的线段树单点更新

    题意:       给一个字符串,两种操作 0 a b 询问a,b之间有多少个wbw, 1 a c 就是把第a个改成c. 思路:       这个题目我们可以用线段树的点更新来做,一开始写了个好长好长 ...

最新文章

  1. python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  2. Arduino超声波测距程序
  3. 修改mysql数据库存放路径
  4. 2018 总结 2019 展望
  5. one more step_KDA新歌《MORE》的一些冷知识:伊芙琳换回原声,摩托车是定制的
  6. P5726 【深基4.习9】打分(python3实现)
  7. 2.7 HDFS的使用
  8. JavaIO基础学习笔记
  9. 容器技术Docker K8s 7 容器服务ACK集群
  10. oracle10g最快安装教程,史上最详细Oracle 10g安装教程
  11. 小米android11账号补丁,小米10 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
  12. i5 1135G7和 i7 10875H哪个好
  13. 给视频局部添加马赛克,怎么调整马赛克位置
  14. WIN7系统电脑关机后自动重启解决方法
  15. 字符数组动态开辟空间和静态开辟空间
  16. sklearn模块之朴素贝叶斯:(二)伯努利模型的实现
  17. 【Willy Susilo 学术报告】Public-Key Encryption with Multi-Ciphertext Equality Test in Cloud Computing
  18. ios 扫码枪外设 键盘模式_iPadOS 显威力,苹果 iPad Pro 终于用上带触控板的外接键盘...
  19. 慕容垂:百万战骨风云里——激荡的鲜卑史略之一(转载)
  20. 7、LiveCharts--常用属性介绍(三)

热门文章

  1. 黑鹰的VIP数据库(一)
  2. 一些常用的css技巧
  3. 知道这六种拍摄技巧,让你玩转夕阳拍摄
  4. 微信支付中的p12证书提取公钥、私钥、证书、序列号等
  5. NAACL2022信息抽取论文分类
  6. QT 虚拟键盘使用问题
  7. oracle rfs进程过多,dg同步后RFS进程起不来,归错于ORA-00604和ORA-16000
  8. 游弋于太平洋,摆脱甜蜜的烦恼
  9. View 5应用之五:iPad与Android携带虚拟桌面
  10. 怎么用html3秒自动跳网页,HTML页面3秒后自动跳转的三种常见方法