hdu1754(线段树单点更新)
链接:点击打开链接
题意:在每个测试的第一行,有两个正整数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(线段树单点更新)相关推荐
- HDU - 1166敌兵布阵+HDU-1754 I Hate It (线段树单点更新——累加/最大值)
线段树单点更新,模板题 HDU1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...
- HDUOJ----1166敌兵布阵(线段树单点更新)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...
- 【原创】tyvj1038 忠诚 计蒜客 管家的忠诚 线段树(单点更新,区间查询)...
[原创]tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询) 最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不 ...
- FZU 2297 Number theory【线段树/单点更新/思维】
Given a integers x = 1, you have to apply Q (Q ≤ 100000) operations: Multiply, Divide. Input First l ...
- CDOJ 1073 线段树 单点更新+区间查询 水题
H - 秋实大哥与线段树 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit S ...
- 线段树——单点更新(二)
HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...
- CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化
题目链接: http://codeforces.com/contest/19/problem/D 题意: 有三种操作"add x y"往平面上添加(x,y)这个点,"re ...
- hdu4046 不错的线段树单点更新
题意: 给一个字符串,两种操作 0 a b 询问a,b之间有多少个wbw, 1 a c 就是把第a个改成c. 思路: 这个题目我们可以用线段树的点更新来做,一开始写了个好长好长 ...
最新文章
- python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
- Arduino超声波测距程序
- 修改mysql数据库存放路径
- 2018 总结 2019 展望
- one more step_KDA新歌《MORE》的一些冷知识:伊芙琳换回原声,摩托车是定制的
- P5726 【深基4.习9】打分(python3实现)
- 2.7 HDFS的使用
- JavaIO基础学习笔记
- 容器技术Docker K8s 7 容器服务ACK集群
- oracle10g最快安装教程,史上最详细Oracle 10g安装教程
- 小米android11账号补丁,小米10 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
- i5 1135G7和 i7 10875H哪个好
- 给视频局部添加马赛克,怎么调整马赛克位置
- WIN7系统电脑关机后自动重启解决方法
- 字符数组动态开辟空间和静态开辟空间
- sklearn模块之朴素贝叶斯:(二)伯努利模型的实现
- 【Willy Susilo 学术报告】Public-Key Encryption with Multi-Ciphertext Equality Test in Cloud Computing
- ios 扫码枪外设 键盘模式_iPadOS 显威力,苹果 iPad Pro 终于用上带触控板的外接键盘...
- 慕容垂:百万战骨风云里——激荡的鲜卑史略之一(转载)
- 7、LiveCharts--常用属性介绍(三)