hdu1753I Hate It(线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=1754
单点更新,区间求最值
// File Name: hdu1754.cpp
// Author: bo_jwolf
// Created Time: 2013年08月16日 星期五 11点27分03秒 #include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime> using namespace std; #define lson l , mid , rt << 1
#define rson mid + 1 , r , rt << 1 | 1 const int maxn = 200005 ;
//int sum[ maxn << 2 ] ; struct node
{
int Max ;
}tree[ maxn << 2 ] ; void PushUp( int rt )
{
tree[ rt ].Max = max( tree[ rt << 1 ].Max , tree[ (rt << 1 | 1 ) ].Max ) ;
}
void build( int l , int r , int rt )
{
if( l == r )
{
scanf( "%d" , &tree[ rt ].Max );
return ;
}
int mid = ( l + r ) >> 1 ;
build( lson ) ;
build( rson ) ;
PushUp( rt ) ;
} void update( int p , int add , int l , int r , int rt )
{
if( l == r )
{
tree[ rt ].Max = add ;
return ;
}
int mid = ( l + r ) >> 1 ;
if( p <= mid )
update( p , add , lson ) ;
else
update( p , add , rson ) ;
PushUp( rt ) ;
} int query( int L , int R , int l , int r , int rt )
{
if( L <= l && r <=R )
{
return tree[ rt ].Max ;
}
int mid = ( l + r ) >> 1 ;
int ret = 0 ;
if( L <= mid )
ret = max( ret , query( L , R , lson ) ) ;
if( R > mid )
ret = max( ret , query( L , R , rson ) );
return ret ;
} int main()
{
int T , n , m ;
while( scanf( "%d%d" , &n , &m ) != EOF )
{
build( 1 , n , 1 ) ;
char op[ 10 ] ;
while( m-- )
{
scanf( "%s" , op ) ;
int a , b ;
scanf( "%d%d" , &a , &b ) ;
if( op[ 0 ] == 'Q' )
printf( "%d\n" , query( a , b , 1 , n , 1 ) ) ;
else
update( a , b , 1 , n , 1 ) ;
}
}
return 0;
}
hdu1753I Hate It(线段树)的更多相关文章
- bzoj3932--可持久化线段树
题目大意: 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- PYOJ 44. 【HNSDFZ2016 #6】可持久化线段树
#44. [HNSDFZ2016 #6]可持久化线段树 统计 描述 提交 自定义测试 题目描述 现有一序列 AA.您需要写一棵可持久化线段树,以实现如下操作: A v p x:对于版本v的序列,给 A ...
- CF719E(线段树+矩阵快速幂)
题意:给你一个数列a,a[i]表示斐波那契数列的下标为a[i],求区间对应斐波那契数列数字的和,还要求能够维护对区间内所有下标加d的操作 分析:线段树 线段树的每个节点表示(f[i],f[i-1])这 ...
- 【BZOJ-3779】重组病毒 LinkCutTree + 线段树 + DFS序
3779: 重组病毒 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 224 Solved: 95[Submit][Status][Discuss] ...
- 【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集
3673: 可持久化并查集 by zky Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 1878 Solved: 846[Submit][Status ...
- 【BZOJ-2653】middle 可持久化线段树 + 二分
2653: middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1298 Solved: 734[Submit][Status][Discu ...
随机推荐
- HDU 1404 (博弈) Digital Deletions
首先如果第一个数字是0的话,那么先手必胜. 对于一个已知的先手必败状态,凡是能转移到先手必败的状态一定是必胜状态. 比如1是必败状态,那么2~9可以转移到1,所以是必胜状态. 10,10*,10**, ...
- 【英语】Bingo口语笔记(37) - 动物的多种表达
let the cat out of the bag.不在袋子中的猫 指秘密被泄露 dog tired 累成狗 doggy bag 食品袋
- AIX 第3章 指令记录
[ssdb01.shz.hn|oracle|/home/oracle]$oslevel -rq --查看系统已安装的维护级别 Known Recommended Maintenance Levels ...
- 2015-10-13 晴 tcp/ip卷1
今年看tcp/ip卷1的内容.苦和甜来自外界,坚强则来自内心,来自一个人的自我努力. 只有勤奋和积极进取的人 才会赢得成功的人生.加油
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://weizhulin.blog.51cto.com/1556324/311450 大 ...
- php5.2转向 PHP 5.3 的 PHP 开发
PHP 5.3 开始,为了更好的向 PHP 的未来版本(PHP6) 过渡,将未来不再支持的函数标记为 DEPRECATED.在代码中使用这些函数,将毫不留情的在页面中显示警告信息:“使用了过时的函数… ...
- hdu 1023(java实现进度计算)
题意:就是问你火车出战的方案数. 分析:卡特兰数的模板题,递推公式:a[n]=a[n-1]*(4*n-2)/(n+1). java代码实现: import java.util.*; import ja ...
- hdu 3478(判断奇环)
题意:给你一个无向图,问你有没有可能存在一个奇环连接所有的节点. 分析:好久没写博客了,这个好习惯还是要继续保持的!这道题通过转化之后就是问你有没有存在一个奇环连接所有的节点,这里用到的方法是染色法, ...
- LoadRunner error -27728
错误现象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired whendownloading no ...
- 【LeetCode】198 - House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount ...