I Hate It

Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 65087    Accepted Submission(s): 25277

Problem Description
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。
这让很多学生很反感。
不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
Input
本题目包含多组测试,请处理到文件结束。
在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。
学生ID编号分别从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩。
接下来有M行。每一行有一个字符 C (只取'Q'或'U') ,和两个正整数A,B。
当C为'Q'的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。
当C为'U'的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。
Output
对于每一次询问操作,在一行里面输出最高成绩。
Sample Input
5 6
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 2 9
Q 1 5
Sample Output
5
6
5
9

Hint

Huge input,the C function scanf() will work better than cin

Author
linle
【分析】万能的模板啊
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define mol 1000000009
#define inf 0x3f3f3f3f
#define M 200005
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
typedef long long int ll;
const int maxn = ;
int MAX[maxn<<];
void PushUP(int rt) {
MAX[rt] = max(MAX[rt<<] , MAX[rt<<|]);
}
void build(int l,int r,int rt) {
if (l == r) {
scanf("%d",&MAX[rt]);
return ;
}
int m = (l + r) >> ;
build(lson);
build(rson);
PushUP(rt);
}
void update(int p,int sc,int l,int r,int rt) {
if (l == r) {
MAX[rt] = sc;
return ;
}
int m = (l + r) >> ;
if (p <= m) update(p , sc , lson);
else update(p , sc , rson);
PushUP(rt);
}
int query(int L,int R,int l,int r,int rt) {
if (L <= l && r <= R) {
return MAX[rt];
}
int m = (l + r) >> ;
int ret = ;
if (L <= m) ret = max(ret , query(L , R , lson));
if (R > m) ret = max(ret , query(L , R , rson));
return ret;
}
int main() {
int n , m;
while (~scanf("%d%d",&n,&m)) {
build( , n , );
while (m --) {
char op[];
int a , b;
scanf("%s%d%d",op,&a,&b);
if (op[] == 'Q') printf("%d\n",query(a , b , , n , ));
else update(a , b , , n , );
}
}
return ;
}

最新文章

  1. web.xml 配置中classpath: 与classpath*:的区别
  2. [蓝牙] 6、基于nRF51822的蓝牙心率计工程消息流Log分析(详细)
  3. 使用C/C++,赋值运算时发生的转换
  4. [深入浅出WP8.1(Runtime)]数据绑定的基础
  5. CentOS 6 安装 python 2.7 和 mod_wsgi 运行pyocr[tesseract]
  6. ubuntu快速清理磁盘垃圾
  7. 有意义的命名 Meaningful names
  8. C\C++编程中:相对路径+绝对路径
  9. JS中String类型转换Date类型 并 计算时间差
  10. 让WPS支持VHDL的关键词加粗
  11. 函数(C++ Primer读书笔记)
  12. webpack入门必知必会
  13. JS对象格式化方法:pretty_format
  14. 关于GitHub
  15. Java之旅_面向对象_封装
  16. php的缓冲/缓存 js对象 ,php编程的深入思考-1
  17. EditText被键盘遮得住
  18. windows无法安装到这个磁盘 gpt分区形式
  19. 朝韩危机-Python模拟导弹互射
  20. docker修改docker0 mtu

热门文章

  1. Codeforces Round #553 F Sonya and Informatics
  2. [IOI2000][POJ1160]Post office
  3. [bzoj] 2694 Lcm || 莫比乌斯反演
  4. 工具——代码中自动生成SVN版本号
  5. taotao用户注册前台页面
  6. PowerMock
  7. mysql__索引的设计和使用
  8. event loop 小记
  9. 图论:Gale-Shapley算法
  10. java 获取当前应用程序路径