题意:

很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,

现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。

链接: http://acm.hdu.edu.cn/showproblem.php?pid=1754

思路:

基本的线段树点修改+查询区间最大值

代码:

#include <bits/stdc++.h>
using namespace std;
const int MAXN=2e5+;
int tree[MAXN<<];int a[MAXN];
void push_up(int node)
{
tree[node]=max(tree[node<<],tree[node<<|]);
}
void build(int node,int l,int r)
{
if(l==r)
{
tree[node]=a[l];return;
}
int mid=(l+r)>>;
build(node<<,l,mid);
build(node<<|,mid+,r);
push_up(node);
}
void update(int node,int l,int r,int i,int k)
{
int mid=(l+r)>>;
if(l==r)
{
a[l]=k;tree[node]=k;
return;
}
if(i<=mid)
update(node<<,l,mid,i,k);
else
update(node<<|,mid+,r,i,k);
push_up(node);
}
int query(int node,int l,int r,int x,int y)
{
if(x<=l&&y>=r)
{
return tree[node];
}
int res=;
int mid=(l+r)>>;
if(x<=mid)
res=max(res,query(node<<,l,mid,x,y));
if(y>mid)
res=max(res,query(node<<|,mid+,r,x,y));
return res;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
build(,,n);
for(int i=;i<=m;i++)
{
char str[];
scanf("%s",str);
int x,y;
if(str[]=='Q')
{
scanf("%d%d",&x,&y);
printf("%d\n",query(,,n,x,y));
}
else
{
scanf("%d%d",&x,&y);
update(,,n,x,y);
}
}
}
return ;
}

最新文章

  1. 卸载Centos自带open-jdk
  2. selenium 关于富文本的处理
  3. 【洛谷P2737】Beef McNuggets
  4. 30 分钟快快乐乐学 SQL Performance Tuning
  5. 重定向redirect与跳转forward区别
  6. 在 Fedora 里安装自带的 MATE和 cinnamon
  7. 外部div自适应内部标签的高度,设置最小高度、最大高度
  8. SRM 409(1-250pt, 1-500pt)
  9. ok6410 u-boot-2012.04.01移植六完善MLC NAND支持
  10. 12个用得着的JQuery代码片段
  11. C 小写字母编程大写并输出
  12. Python创建多进程,用Queue传递信息
  13. IE兼容问题及处理
  14. 自定义MySQL函数
  15. Pycharm配置Git和Github
  16. MySQL数据库权限体系介绍
  17. pyenv+virtual 笔记
  18. CSS3新特性,兼容性,兼容方法总结
  19. [git]git版本管理学习记录
  20. HDU 3681 Prison Break (二分 + bfs + TSP)

热门文章

  1. Windows 搭建WAMP+Mantis
  2. centos 时区的更改 UTC TO CST
  3. GO Range
  4. 很重要的C++的位运算bitset
  5. 02-15Android学习进度报告十五
  6. 02-12Android学习进度报告十二
  7. Python3中reduce和lambda的用法
  8. iOS 开发之 FMDB 源码分析
  9. 判断ie8以下 或者ie9以下
  10. redhat7.6 httpd 匿名目录 目录加密 域名跳转