I Hate It HDOJ---1754
I Hate It
Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 29528 Accepted Submission(s): 11703
这让很多学生很反感。
不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
在每个测试的第一行,有两个正整数 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。
#include<stdio.h>
#include<string.h>
#define L(x) (x << 1)
#define R(x) (x << 1|1)
#define MAX 200000
typedef struct
{
int left;
int right;
int temp_max;
}Node;
Node node[*MAX];
int max;
int getmax(int x,int y)
{
return x <y?y:x;
} void build(int l,int r,int k)
{
node[k].left = l;
node[k].right = r;
node[k].temp_max = ;
if(l == r)
return ;
int mid = (l+r) >> ;
build(l,mid,L(k));
build(mid+,r,R(k));
} void insert(int pos,int val,int k)
{
if(pos >= node[k].left && pos <= node[k].right)
{
node[k].temp_max = getmax(val,node[k].temp_max);
}
if(node[k].left == node[k].right)
return ;
if(pos < node[R(k)].left)
insert(pos,val,L(k));
else
insert(pos,val,R(k));
} int get_result(int l,int r,int k)
{
if(l == node[k].left && r == node[k].right)
{
return max = node[k].temp_max;
}
if(node[k].left == node[k].right)
return max;
if(r < node[R(k)].left)
get_result(l,r,L(k));
else if(l > node[L(k)].right)
return get_result(l,r,R(k));
else
return max = getmax(get_result(l,node[L(k)].right,L(k)),get_result(node[R(k)].left,r,R(k)));
} int main()
{
int n,m,i,j,k;
char str[];
while(~scanf("%d%d",&n,&m))
{
build(,n,);
memset(str,,sizeof(str));
for(i = ;i <= n;i ++)
{
scanf("%d",&j);
insert(i,j,);
}
for(i = ;i <= m;i ++)
{
scanf("%s",str);
if(!strcmp(str,"Q"))
{
max = ;
scanf("%d%d",&j,&k);
get_result(j,k,);
printf("%d\n",max);
}
else
{
scanf("%d%d",&j,&k);
insert(j,k,);
}
memset(str,,sizeof(str));
}
}
return ;
}
I Hate It HDOJ---1754的更多相关文章
- HDOJ 1754 I Hate It 线段树 第二题
I Hate It Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就 ...
- HDOJ 1754 I Hate It (线段树)
题目: Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感.不管你喜不喜欢,现在需要你做的是,就是按照老师的要 ...
- 【HDOJ】【1754】I Hate It
线段树 这是一道线段树的裸题……带单点修改的RMQ 为什么我会想到写这么一道傻逼题呢?是因为这样……
- HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值)
HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值) 点我挑战题目 题意分析 从题目中可以看出是大数据的输入,和大量询问.基本操作有: 1.Q(i,j)代表求区间max(a ...
- 【HDOJ】1754 I Hate It
线段树. #include <iostream> #include <cstdio> #include <cstring> using namespace std; ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
随机推荐
- CSS边框属性二---border-images
border-images 属性 主要用border-images 属性来制作自适应按钮和tab标签&自适应边框. 例子: border-images:url("img.png&qu ...
- [转] jQuery按键响应事件keypress对应的按键编码keycode
原文地址:http://blog.csdn.net/chenhj1988918/article/details/7534922 keypress api 文档:http://api.jquery.c ...
- (LightOJ 1004) Monkey Banana Problem 简单dp
You are in the world of mathematics to solve the great "Monkey Banana Problem". It states ...
- devenv compile errors collection
任务:使用 devenv commnd line 编译 VS 2010 工程. 使用 devenv 编译工程,要保证工程所需的 VC++目录 (VC++ Directories) 设置正确才能编译成功 ...
- Android Activity 生命周期详解
学习android开发这么久对于activity的生命周期还没有仔细思考过,所以,我大致的把这些东西整理一下,希望通过这使自己理解的更透彻点吧! 首先看一下Activity生命周期图和它的的四个阶段 ...
- vs2005用正则表达式统计有效代码行数
正则表达式:^:b*[^:b#/]+.*$ 需要注意:#开头和/开头或者空行都不计入代码量. 如果需要只统计代码文件的代码量,可以按住Ctrl+Shift+F之后选择查找文件的类型. Form:htt ...
- html5音频和视频相关属性和方法
方法 方法 描述 addTextTrack() 为音视频加入一个新的文本轨迹 canPlayType() 检查指定的音视频格式是否得到支持 load() 重新加载音视频标签 play() 播放音视频 ...
- 开源CMS赏析
国内CMS产品有很多,开源的产品也不少,大概的可分为以下几类: .NET开源产品:We7CMS: PHP开源产品:Dede CMS.PHP CMS和帝国CMS: ASP开源产品:动易SiteFacto ...
- 服务器慢 mysql-bin.000001文件占满磁盘的原因与解决
发现 VPS 服务器上的网站反应超级慢,简单的重启.重启各主要服务,发现mysql 的反应极其不正常. 一方面是问题,这与站点访问量有关.开始时从mysql 的配置文件 my.cnf 考虑,但志文工作 ...
- Js 简单分页(二)
此次使用了http://www.purecss.org/ 的前端Css 效果图 上代码 //更新分页工具栏的效果展示 function updatepagetoolshow(){ //判断当前页 及 ...