题目链接

线段树入门题,线段树单点更新求最大值问题。

#include <bits/stdc++.h>
using namespace std;
#define m ((l+r)>>1)
#define lson root<<1,l,m
#define rson root<<1|1,m+1,r
#define N 30005
struct Tree
{
int l,r,ans;
}tree[N<<];
void build(int root,int l,int r)
{
tree[root].l=l;
tree[root].r=r;
if(l==r){
scanf("%d",&tree[root].ans);
return ;
}
build(lson);
build(rson);
tree[root].ans=max(tree[root<<].ans,tree[root<<|].ans);
}
void update(int root,int l,int r,int pos,int val)
{
if(l==r){
tree[root].ans=val;
return ;
}
if(pos<=m) update(lson,pos,val);
if(pos>m) update(rson,pos,val);
tree[root].ans=max(tree[root<<].ans,tree[root<<|].ans);
}
int query(int root,int l,int r,int ll,int rr)
{
//查询区间包含当前区间
if(ll<=l&&rr>=r){
return tree[root].ans;
}
int cnt=-;
if(ll<=m)cnt=max(cnt,query(lson,ll,rr));
if(rr>m) cnt=max(cnt,query(rson,ll,rr));
return cnt;
}
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF){
build(,,n);
int a,b;char c[];
while(k--){
scanf("%s%d%d",c,&a,&b);
if(c[]=='U') update(,,n,a,b);
else{
if(a>b) swap(a,b);
printf("%d\n",query(,,n,a,b));
}
}
}
return ;
}

HDU 1754 I Hate It 线段树单点更新求最大值的更多相关文章

  1. HDU 1754 I Hate It 线段树 单点更新 区间最大值

    #include<iostream> #include<string> #include<algorithm> #include<cstdlib> #i ...

  2. HDU 1754 I Hate It 线段树(单点更新,成段查询)

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=1754 题解: 单点更新,成段查询. 代码: #include<iostream> ...

  3. hdu 1754 I Hate It 线段树 单点更新 区间最值

    线段树功能:update:单点更新 query:区间最值 #include <bits/stdc++.h> #define lson l, m, rt<<1 #define r ...

  4. HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)

    HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...

  5. HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)

    HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对) 题意分析 给出n个数的序列,a1,a2,a3--an,ai∈[0,n-1],求环序列中逆序对 ...

  6. HDU 1166 敌兵布阵(线段树单点更新,板子题)

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

  7. HDU 1166 敌兵布阵(线段树单点更新)

    敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...

  8. HDU 1166 敌兵布阵(线段树单点更新,区间查询)

    描述 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...

  9. HDU 1754 I Hate It(线段树单点替换+区间最值)

    I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...

随机推荐

  1. JSPatch 使用

    1.JSPatch 准备 地址:https://github.com/bang590/JSPatch 框架:libz.1.tbd , JavaScriptCore.framework 2.cocosp ...

  2. fedora22,fedora24最简单的安装virtaulbox的方法

    fedora为什么不好用呢? 1.因为很多软件没有预先安装,新手安装时,就无从下手了. 2.版本更新太快,有老手提供了解决方案,但是版本更新了,新手按照步骤来,就不能配置成功! 不抱怨了. 安装vir ...

  3. js中 checkTime()函数

    <html><head><script type="text/javascript">function startTime()//函数start ...

  4. C语言变量类型和具体的范围

    什么是变量?变量自然和常量是相对的.常量就是 1.2.3.4.5.10.6......等固定的数字,而变量则根我们小学学的 x 是一个概念,我们可以让它是 1,也可以让它是 2,我们想让它是几是我们的 ...

  5. canvas刮刮乐效果(pc端&H5、zepto-touchmove)

    一.html <div id="canvasArea" style="width:300px;height:200px;position:relative;&quo ...

  6. WdatePicker小结

    WdatePicker.js日期插件: 1. %y  当前年  %M  当前月  %d  当前日  %ld 本月最后一天  %H  当前时  %m  当前分  %s  当前秒 2.可以通过配置minD ...

  7. 使用django开发博客过程记录4——Category分类视图

    在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现 ...

  8. Download Excel file with Angular

    源码连接(编写中) 用Angular下载后台返回的Excel文件,用Blob实现,引用FileSaver.js 后台C#代码: [WebMethod] public static byte[] Cal ...

  9. iOS视频边下边播--缓存播放数据流

    实现视频边下边播,这里的边下边播不是单独开一个子线程去下载,而是把视频播放的数据给保存到本地.简而言之,就是使用一遍的流量,既播放了视频,也保存了视频. 用到的框架:<AVFoundation/ ...

  10. Tensorflow使用环境配置

    windows中不能直接使用Tensorflow,所以得费点劲.(2016.11.29更新,TensorFlow 0.12 中已加入初步的 Windows 原生支持) 先是直接使用了<Deep ...