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的权值不同 然后就是处理字典序的问题,当松弛 ... 
随机推荐
- OC与Swift的区别一(文件结构)
			1.文件后缀名 oc的文件后缀名为:头文件.h 主体文件.m swift文件后缀名为:.swift 2. 代码分隔符 oc中使用分号;作为代码分隔符 swift中无需使用代码分隔符,以行作为代码分隔 ... 
- java新手笔记2 数据类型
			1.注释 /** doc注释 * 类说明信息 */ //声明类 文件名与类名一致 public class World {//类定界符 //声明方法 main方法 public static void ... 
- HDU 1619 Unidirectional TSP(单向TSP + 路径打印)
			Unidirectional TSP Problem Description Problems that require minimum paths through some domain appea ... 
- 新浪微博 iOS SDK获得用户信息
			代码 - (void)getUserInfo { NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:2 ... 
- Mantle 简单教程
			Mantle可以很方便的去书写一个模型层的代码. 使用它可以很方便的去反序列化JSON或者序列化为JSON(需要在MTLModel子类中实现<MTLJSONSerializing>协议) ... 
- 做个无边框winform窗体,并美化界面
			今天下午程序写完,有些时间就搞下界面美化,做个无框窗体.首先把窗体的FormBorderStyle设置为None,就变成无框的啦,不过你会发现这样窗体上就没有原来的最大最小化和关闭按钮了哦,所以要自己 ... 
- SPA架构
			databus ajax处理得到得数据 service 对databus做缓存,以及业务(如评论列表,评论详情) component 组件 html+css+js组成 evenbus 组件之间通讯,数 ... 
- 几个 JavaScript 奇技淫巧
			#1使用双等号给布尔变量赋值,很容易联想到 var a = b || 123; 的写法 var a = b == 123;#2快速转换为布尔值 !!a#3防止页面被 iframe 调用 if(top ... 
- ARM编译器4字节对齐
			(1)我们假设只有一个赋初值的char型全局变量,那么系统会在data区分配一个4字节的存储空间来存储它.实际上,只用了1个字节,但是为了4字节对齐,只好分配4个字节,所以就会有3个字节浪费. (2) ... 
- PHP利器-WAMPServer
			为了配置memcacheAdmin,牵涉到搭建PHP的环境,使用的是WAMPServer,安装之后,需要对apache进行配置, 端口,需要将wamp\bin\apache\Apache2.2.21\ ... 
