线段树 区间查询最大值,单体修改 hdu 1754
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<queue>
#include<iostream>
using namespace std;
const int maxn=2e5+;
int ary[maxn];
struct node
{
int l,r,val;
}tree[maxn<<];
void push_up(int cur)
{
tree[cur].val=max(tree[cur*].val,tree[cur*+].val);
}
void build(int l,int r,int cur)
{
tree[cur].l=l,tree[cur].r=r;
tree[cur].val=;
if(l==r){
tree[cur].val=ary[l];
return;
}
int mid=(l+r)/;
build(l,mid,cur*);
build(mid+,r,cur*+);
push_up(cur);
}
int query(int l,int r,int cur)
{ if(l<=tree[cur].l&&r>=tree[cur].r)
return tree[cur].val;
int mid=(tree[cur].l+tree[cur].r)/;
int ans=;
if(l<=mid) ans=max(ans,query(l,r,cur*));
if(r>mid) ans=max(ans,query(l,r,cur*+));
return ans;
}
void Update(int base,int price,int cur)
{
if(tree[cur].l==tree[cur].r){
tree[cur].val=price;
return;
}
int mid=(tree[cur].l+tree[cur].r)/;
if(base<=mid) Update(base,price,cur*);
else Update(base,price,cur*+);
push_up(cur);
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
for(int i=;i<=n;i++) scanf("%d",&ary[i]);
build(,n,);
while(m--){
char tmp;
cin>>tmp;
if(tmp=='Q'){
int l,r;
scanf("%d%d",&l,&r);
int ans=query(l,r,);
printf("%d\n",ans);
}
else{
int l,r;
scanf("%d%d",&l,&r);
Update(l,r,);
}
}
}
return ;
}
线段树 区间查询最大值,单体修改 hdu 1754的更多相关文章
- ACM_3n+1问题(克拉兹问题+线段树区间查询最大值)
3n+1问题 Time Limit: 2000/1000ms (Java/Others) Problem Description: 考虑如下的序列生成算法:从整数n开始,如果n是偶数,把它除以2:如果 ...
- 最大数maxnumber (HYSBZ 1012)(线段树区间查询和单点修改)(优雅的暴力)
Problem 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插入操作 ...
- Light OJ-1082 - Array Queries,线段树区间查询最大值,哈哈,水过~~
...
- 约会安排 HDU - 4553(线段树区间查询,区间修改,区间合并)
题目: 寒假来了,又到了小明和女神们约会的季节. 小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会.与此同时,也有很多基友找他开黑, ...
- (线段树 区间查询)The Water Problem -- hdu -- 5443 (2015 ACM/ICPC Asia Regional Changchun Online)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=5443 The Water Problem Time Limit: 1500/1000 MS (Java/ ...
- HDU 1754 I Hate It(线段树区间查询,单点更新)
描述 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感.不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老 ...
- HDU.5692 Snacks ( DFS序 线段树维护最大值 )
HDU.5692 Snacks ( DFS序 线段树维护最大值 ) 题意分析 给出一颗树,节点标号为0-n,每个节点有一定权值,并且规定0号为根节点.有两种操作:操作一为询问,给出一个节点x,求从0号 ...
- POJ_3468 A Simple Problem with Integers 【线段树区间查询+修改】
一.题目 POJ3468 二.分析 裸的线段树区间查询+修改. 三.AC代码 #include <cstdio> #include <iostream> #include &l ...
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53703 Accepted: 25237 ...
随机推荐
- Piggy-Bank HDU - 1114 完全背包
#include<iostream> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; ]; s ...
- 前端:将网站打造成单页面应用SPA
前端:将网站打造成单页面应用SPA 前言 不知你有没有发现,像Github.百度.微博等这些大站,已经不再使用普通的a标签做跳转了.他们大多使用Ajax请求替代了a标签的默认跳转,然后使用HTML ...
- Android_ViewPager+Fragment实现页面滑动和底部导航栏
1.Xml中底部导航栏由一个RadioGroup组成,其上是ViewPager. <?xml version="1.0" encoding="utf-8" ...
- Spring框架详解介绍-基本使用方法
1.Spring框架-控制反转(IOC) 2.Spring框架-面向切面编程(AOP) 3.Spring 内置的JdbcTemplate(Spring-JDBC) Spring框架-控制反转(IOC) ...
- 笔记本u盘插上不显示
u盘突然拔出笔记本再次插入时不显示: 解决方法:我的电脑-设备管理器-其他设备(你的U盘驱动)-卸载 再重新插上去,即可显示
- @Html.DropDownList()的四种用法及自定义DropDownList扩展
https://blog.csdn.net/xiaouncle/article/details/82856982
- jdk8-》joining、groupingBy、summarizingInt函数
拼接函数 Collectors.joining // 3种重载方法 Collectors.joining() Collectors.joining("拼接符") Collector ...
- c# 嵌入资源并读取
原文:c# 嵌入资源并读取 1. 右键点击项目,选择资源,然后选择资源的类型,插入资源. 2. 这时候在项目的目录树上会出现一个Resource的文件夹,找到嵌入的资源文件,右击属性,在 Build ...
- Ubuntu18.04 一条命令安装caffe问题
由于caffe安装坑很多,而且caffe框架很久不更新了,微调对框架影响不大,所以对与ubuntu18.04在caffe官网提供了一条命令安装,避免很多踩坑痛苦. CPU的一条命令安装: sudo a ...
- maven镜像地址以及maven仓库
参考网址:https://blog.csdn.net/Hello_World_QWP/article/details/82459915 首先介绍一下maven仓库的概念,在 Maven 的术语中,仓库 ...