Problem

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

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


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

题解:线段树裸题。注意一下Hint,要用long long和读入的处理。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int MAX = 200000;
struct node
{int l, r;int w;
};
struct node tree[MAX *4 + 1];
int ans = 0;
void BuildTree(int l, int r, int k)
{tree[k].l = l;tree[k].r = r;if(l == r){scanf("%d",&tree[k].w);return ;}int m = (tree[k].l + tree[k].r) >> 1;BuildTree(l, m,k << 1);BuildTree(m + 1, r, k << 1 | 1);tree[k].w = max(tree[k << 1].w, tree[k << 1 | 1].w);
}
void SingleModify(int k, int x, int y)
{if(tree[k].l == tree[k].r){tree[k].w = y;return ;}int m = (tree[k].l + tree[k].r) / 2;if(x <= m) SingleModify(k<<1,x,y);else SingleModify(k<<1|1,x,y);tree[k].w = max(tree[k<<1].w, tree[k<<1|1].w);
}
void IntervalQuery(int k, int x, int y)
{if(tree[k].l >= x && tree[k].r <= y){ans = max(ans,tree[k].w);return ;}int m = (tree[k].l + tree[k].r) >>1;if(x <= m) IntervalQuery(k<<1,x,y);if(y > m) IntervalQuery(k <<1 |1,x, y);
}
char op;
int main()
{int n, m,x,y;while(~scanf("%d %d", &n, &m)){BuildTree(1,n,1);while(m --){getchar();scanf("%c %d %d",&op, &x, &y);if(op == 'Q'){ans = 0;IntervalQuery(1,x,y);printf("%d\n",ans);}else if(op =='U'){SingleModify(1,x,y);}}}return 0;
}

转载于:https://www.cnblogs.com/lcchy/p/10139632.html

I Hate It (HDU 1754)相关推荐

  1. 有源汇有上下界最大流/最小流 配题(HDU 3157)

    因为是有源汇所以设源点为 s,汇点为 t. 有源汇有上下界最大流: 连接一条 t 指向 s 的边,容量为 INF. 通过上述步骤,现在图变成了无源汇网络. 引入超级源点 S,超级汇点 T. 连接一条 ...

  2. 最大表示法--环形字符串最大字典序(HDU 5442)

    http://acm.hdu.edu.cn/showproblem.php?pid=5442 问题概述:n个字符围成一个环,请从这个环中找出字典序最大的长度为n的字符串,输出它的起始点和方向(0顺1 ...

  3. HDU2019多校第二场 1009(HDU 6599) I Love Palindrome String(回文树(自动机)+manacher)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6599 解题思路: 回文自动机求每个本质不同的子串出现的次数,同时记录每个节点i代表的回文串第一次出现的 ...

  4. S-Nim (HDU 1536)组合博弈SG多组游戏

    S-Nim 题目链接 Problem Description Arthur and his sister Caroll have been playing a game called Nim for ...

  5. BestCoder25 1001.Harry and Magical Computer(hdu 5154) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5154 题目意思:有 n 门 processes(编号依次为1,2,...,n),然后给出 m 种关系: ...

  6. (HDU - 1847)Good Luck in CET-4 Everybody!(博弈)

    题目链接:Good Luck in CET-4 Everybody! - HDU 1847 - Virtual Judge (ppsucxtt.cn) 题目是中文的,我在这就不翻译题意了. 先说一种打 ...

  7. 美素数(HDU 4548)(打表,简化时间复杂度)

    相信大家都喜欢美的东西,让我们一起来看看美素数吧. 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为"美素数",如29,本身是素数,而且2+9 = 11 ...

  8. 单词数(HDU 2072)

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就 ...

  9. Ant Trip(HDU 3018)---多笔画问题

    题目链接 题目描述 Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together w ...

最新文章

  1. Linux内核探讨-- 第三章
  2. 天池赛题解析:零基础入门语义分割-地表建筑物识别-CV语义分割实战(附部分代码)
  3. JSR303—Bean Validation验证
  4. php ci如何保证数据安全,浅谈php(codeigniter)安全性注意事项
  5. 【总结】找到自适合的学习方法
  6. 浙江大学linux网络通信,浙江大学钟财军副教授——“Wireless Powered Communication Networks”...
  7. SAP License:BSEG与FAGLFLEXA (A)表数据不一致问题
  8. 结构体,文件操作,指针,简单练习
  9. Aloha:一个略屌的分布式任务调度框架
  10. 小米路由器安装Linux软件,小米路由器mini安装mixbox教程
  11. Allegro之测量时显示两种单位(mil mm)
  12. 使用 Calibre Web 搭建私人电子图书馆
  13. excel两列数据对比找不同_技巧不求人168期 Excel两列数据找不同的3种方法 Word快速更改文本排序...
  14. vue显示PDF文件
  15. 经此一疫,互联网公司格局发生了哪些变化?
  16. 漏洞解决方案-敏感信息脱敏显示
  17. 线性代数——坐标系空间转换
  18. 计算机主机之,计算机主机包括什么
  19. 2000个工作汇报PPT模板免费下载网站
  20. C-素数回文数的个数

热门文章

  1. linux与windows下tomcat的java内存设置
  2. 《SLIC Superpixels》阅读笔记
  3. eclipse无法启动,双击后自动退出,无任何错误提示
  4. 【转】华为的面试题目(有兴趣的进来看看)
  5. vi编辑器的学习使用(十五)
  6. how to find your partner
  7. what should you do if you want to have a high efficiency for communication
  8. 哥伦比亚大学计算机工程面试题
  9. AnimatorController即动画控制器创建的BUG
  10. RHEL5.4 iptables 配置详解(图)