HDU 1754 I Hate It 线段树单点更新求最大值
线段树入门题,线段树单点更新求最大值问题。
#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 线段树单点更新求最大值的更多相关文章
- HDU 1754 I Hate It 线段树 单点更新 区间最大值
#include<iostream> #include<string> #include<algorithm> #include<cstdlib> #i ...
- HDU 1754 I Hate It 线段树(单点更新,成段查询)
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=1754 题解: 单点更新,成段查询. 代码: #include<iostream> ...
- hdu 1754 I Hate It 线段树 单点更新 区间最值
线段树功能:update:单点更新 query:区间最值 #include <bits/stdc++.h> #define lson l, m, rt<<1 #define r ...
- HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)
HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...
- HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)
HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对) 题意分析 给出n个数的序列,a1,a2,a3--an,ai∈[0,n-1],求环序列中逆序对 ...
- HDU 1166 敌兵布阵(线段树单点更新,板子题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 1166 敌兵布阵(线段树单点更新)
敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...
- HDU 1166 敌兵布阵(线段树单点更新,区间查询)
描述 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...
- HDU 1754 I Hate It(线段树单点替换+区间最值)
I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...
随机推荐
- javaMd5加密
package com.md5Test; import java.security.MessageDigest; public class Md5Test { public void toMD5(St ...
- [转]别再抱怨了,国内这么多优秀的Android资源你都知道吗?
因为一些大家都知道的原因,android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...
- spring mvc重定向方法
一.不带参数,直接重定向到另一个地址: 返回String直接跳转,如: @RequestMapping(value = "/filehandle") public String u ...
- CodeForces 261B Maxim and Restaurant 解法汇总
题意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a3-+ai,问满足Si<=p的i的最大值的期望.(p<=50) 这道题在网上有一些不同 ...
- VS2015插件
这里记录一下,VS2015使用的插件和具体用法链接 Refactoring Essentils:代码重构分析 http://vsrefactoringessentials.com/ 可以使用 取消 R ...
- 人工智能之一《tensorflow》
http://wiki.jikexueyuan.com/project/tensorflow-zh/
- webapi-1
- View绘制机制
View 绘制机制 1. View 树的绘图流程 当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 me ...
- vs2015 HTTP Error 400. The request hostname is invalid.
<site name="> <application path="/" applicationPool="Clr4IntegratedAppP ...
- NC凭证接口(Java发送流和处理返回结果)
问题描述: 金融行业在系统模块分为财务和业务两个系统,我公司是负责业务模块系统,NC公司负责财务系统.但是财务有时候需要生成凭证,这时候就涉及业务模块了,我方就需要写NC凭证接口.这时候就需要三方交互 ...