【HDOJ】1754 I Hate It
线段树。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; #define mymax(a, b) (a>b) ? a:b const int maxn = ; int nums[maxn<<]; void PushUP(int rt) {
nums[rt] = mymax(nums[rt<<], nums[rt<<|]);
} void build(int l, int r, int rt) {
if (l == r) {
scanf("%d", &nums[rt]);
return ;
}
int mid = (l+r)>>;
build(l, mid, rt<<);
build(mid+, r, rt<<|);
PushUP(rt);
} int query(int ll, int rr, int l, int r, int rt) {
if (ll <= l && rr>= r)
return nums[rt];
int mid = (l+r)>>;
int max = -, tmp = -;
if (ll <= mid) {
max = query(ll, rr, l, mid, rt<<);
}
if (rr > mid) {
tmp = query(ll, rr, mid+, r, rt<<|);
if (tmp > max)
max = tmp;
}
return max;
} void update(int des, int val, int l, int r, int rt) {
if (l == r) {
nums[rt] = val;
return ;
}
int mid = (l+r)>>;
if (des <= mid)
update(des, val, l, mid, rt<<);
else
update(des, val, mid+, r, rt<<|);
PushUP(rt);
} int main() {
int n, m;
int i, j;
char cmd[]; while (scanf("%d %d", &n, &m) != EOF) {
build(, n, );
while (m--) {
scanf("%*c%s %d %d", cmd, &i, &j);
if (cmd[] == 'Q')
printf("%d\n", query(i,j,,n,));
else
update(i,j,,n,);
}
} return ;
}
【HDOJ】1754 I Hate It的更多相关文章
- 【BZOJ】1754: [Usaco2005 qua]Bull Math
[算法]高精度乘法 #include<cstdio> #include<algorithm> #include<cstring> using namespace s ...
- 【HDOJ】【1754】I Hate It
线段树 这是一道线段树的裸题……带单点修改的RMQ 为什么我会想到写这么一道傻逼题呢?是因为这样……
- 【HDOJ】4729 An Easy Problem for Elfness
其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...
- 【HDOJ】【3506】Monkey Party
DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...
- 【HDOJ】【3516】Tree Construction
DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...
- 【HDOJ】【3480】Division
DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...
- 【HDOJ】【2829】Lawrence
DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...
- 【HDOJ】【3415】Max Sum of Max-K-sub-sequence
DP/单调队列优化 呃……环形链求最大k子段和. 首先拆环为链求前缀和…… 然后单调队列吧<_<,裸题没啥好说的…… WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……s ...
- 【HDOJ】【3530】Subsequence
DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用: 首先我们要明确几件事情 1.假设我们现在知 ...
随机推荐
- RedHat7上安装MariaDB
编译安装MariaDB 下载MariaDB# wget http://mirrors.opencas.cn/mariadb//mariadb-10.1.8/source/mariadb-10.1.8. ...
- window和Linux下的软链接
window下开启软链接命令: mklink /J "D:\IdeaProjects\bms_work\smartcity_govnet\base_web\target\base_web\ ...
- CSS伪类选择器和伪元素选择器
CSS的伪类选择器常用的是link/visited/hover/active,分别对应未访问.已访问过.鼠标悬停.鼠标按下时的样式,常用于链接,使用时要按此顺序依次写CSS,不能乱 a:link{ba ...
- MyTask4
最近稍微做了点修改,把几处bug修复了下,另外新增了授权码功能和数据缓冲功能 先看看效果图 1. 如果要把软件做的高大上一些,你可以加一个授权验证,授权码以字符串形式存放在程序里面,当然你也可以另外开 ...
- html 之前学习响应式的笔记
响应式的设计,根据用户设备的不同,用户屏幕大小不同,提供不同的网页设计http://mediaqueri.es/PhoneGap 使用2,如何模拟手机设备chome 浏览器 在32以上设备检测用 de ...
- HTML基础(2) 格式标签 文本标签
格式标签: 1.<p></p> 用来显示段落 2.<br> 控制换行 3.<nobr> </nobr> 防止浏览器将过长内容自动换行显示 ...
- iOS中打印系统详细日志
Q:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号.如: 1 NSLog(@"%s:%d obj=%@", __func__, ...
- OC - 18.监听iPhone的网络状态
使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...
- Objective c 自动释放池
学IOS 的大家都知道,IOS 一共有三种内存管理方式:MRC .ARC.自动释放池.我按照我个人的理解简述一下自动释放池,希望能给大家一点帮助,如有错误请大家及时批评指正. 自动释放池有几个特点:1 ...
- label语句和break continue的使用(高程第三章)
break&&outermost var num = 0; outermost: for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ ...