题目链接

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

#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. 实用篇!Asp.Net数据传输压缩

    一.业务场景 公司关键业务模块之一考试系统试卷内容加载缓慢.加载失败,前方人员哀声四起,客户投诉,各种爆炸! 二.问题分析 1.试卷存储采用文本文件方式存储 引发问题:并发情况下IO频繁,造成过多的线 ...

  2. bash基础

    bash 是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Again SHell - 这是关于Bourne shell(sh)的一个双关语(Bourne again ...

  3. HTML 全局属性

    http://www.w3school.com.cn/tags/html_ref_standardattributes.asp

  4. Picture intermediate frame ----- increase smooth

    By YutaiHou

  5. 统一的Json组件和csv下载组件

    java-web-common java-web-common Json组件 目标和用途 规范Json接口格式 Controller中一律返回Java object,组件将自动转换数据格式,满足Jso ...

  6. 4 django系列之HTML通过form标签来同时提交表单内容与上传文件

    preface 我们知道提交表单有2种方式,一种直接通过submit页面刷新方法来提交,另一种通过ajax异步局部刷新的方法提交,上回我们说了通过ajax来提交文件到后台,现在说说通过submit来提 ...

  7. oracle 按时间段统计15分钟内的数据

    string sql = "select to_char(StartTime, 'yyyy')||'-'|| to_char(StartTime, 'mm')||'-'|| to_char( ...

  8. Applying vector median filter on RGB image based on matlab

    前言: 最近想看看矢量中值滤波(Vector median filter, VMF)在GRB图像上的滤波效果,意外的是找了一大圈却发现网上没有现成的code,所以通过matab亲自实现了一个,需要学习 ...

  9. javascript 日期操作

    1.获取指定年月有多少周 /** * 获得一个月的周数 * @param {} y {xxxx}4位数 * @param {} m {0-11} * @return {} */ function ge ...

  10. 带有runat="server" 的服务器控件通过 ClientID 获取Id

    带有runat="server" 的服务器控件 获取Id <input type="text" id="txtName" runat= ...