hdu-1754 I Hate It【线段树】(求区间最大值)

时间:2022-09-06 16:28:27

<题目链接>

I Hate It

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

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
 
解题分析:
线段树模板题,单点更新,区间查询。
 
#include <bits/stdc++.h>
using namespace std;

;
#define Lson rt<<1,l,mid
#define Rson rt<<1|1,mid+1,r
int n,q;
],val[N];

inline Pushup(],tr[rt<<|]); }
void build(int rt,int l,int r){
    if(l==r){ tr[rt]=val[l]; return; }
    ;
    build(Lson);build(Rson);
    Pushup(rt);
}
void update(int rt,int l,int r,int loc,int val){
    if(l==r){ tr[rt]=val;return; }
    ;
    if(loc<=mid)update(Lson,loc,val);
    if(loc>mid)update(Rson,loc,val);
    Pushup(rt);
}
int query(int rt,int l,int r,int L,int R){
    if(L<=l && r<=R){ return tr[rt]; }
    ;
    ;
    if(L<=mid)ans=max(ans,query(Lson,L,R));
    if(R>mid)ans=max(ans,query(Rson,L,R));
    return ans;
}
int main(){
    while(~scanf("%d%d",&n,&q)){
        ;i<=n;i++)scanf("%d",&val[i]);
        build(,,n);
        while(q--){
            getchar();char op;scanf("%c",&op);
            int a,b;scanf("%d%d",&a,&b);
            if(op=='U'){
                update(,,n,a,b);
            },,n,a,b));
        }
    }
}

hdu-1754 I Hate It【线段树】(求区间最大值)的更多相关文章

  1. hdu 1754 I Hate It &lpar;线段树求区间最值&rpar;

    HDU1754 I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u D ...

  2. hdoj 5443 The Water Problem【线段树求区间最大值】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5443 刷道水题助助兴 #include<stdio.h> #include<stri ...

  3. hdoj 1166 敌兵布阵【线段树求区间最大值&plus;单点更新】

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. hdu 1754 I Hate It 线段树 点改动

    // hdu 1754 I Hate It 线段树 点改动 // // 不多说,裸的点改动 // // 继续练 #include <algorithm> #include <bits ...

  5. 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)

    原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...

  6. xdoj-1324 &lpar;区间离散化-线段树求区间最值)

    思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i]  覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...

  7. HDOJ&lpar;HDU&rpar;&period;1754 I Hate It &lpar;ST 单点替换 区间最大值&rpar;

    HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值) 点我挑战题目 题意分析 从题目中可以看出是大数据的输入,和大量询问.基本操作有: 1.Q(i,j)代表求区间max(a ...

  8. HDU-1754 I Hate It&lpar;线段树,区间最大值&rpar;

    很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老师 ...

  9. HDU 2795 Billboard 线段树,区间最大值,单点更新

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. 【线段树求区间第一个不大于val的值】Lpl and Energy-saving Lamps

    https://nanti.jisuanke.com/t/30996 线段树维护区间最小值,查询的时候优先向左走,如果左边已经找到了,就不用再往右了. 一个房间装满则把权值标记为INF,模拟一遍,注意 ...

随机推荐

  1. 【资源】HTML5工具篇:10个营销人也能轻松使用的在线编辑平台

    一 3, 2015 in 资源 作者:Teeya 2014年,HTML5 页面作为营销界新宠儿,“多快好省”的杰出代表,其灵活性高.开发成本低且制作周期短的种种特性使其在移动营销领域大放异彩. 此前, ...

  2. Codeforces Round &num;430 B&period; Gleb And Pizza

    Gleb ordered pizza home. When the courier delivered the pizza, he was very upset, because several pi ...

  3. Jenkins 2&period;x版本修改启动端口号

    直接修改jenkins.xml中arguments的httpPort 然后,重启jenkins.

  4. sqlserver2012 在视图中建索引

      第一种 如果已经有视图但是要加索引只需要执行 以下SQL就好(前提是此视图必须                    绑定到架构) CREATE UNIQUE CLUSTERED INDEX in ...

  5. C&num; 《编写高质量代码改善建议》整理&amp&semi;笔记 --&lpar;五&rpar;类型设计

    1.区分接口和抽象类的应用场合 区别: ①接口支持多继承,抽象类则不能. ②接口可以包含方法,属性,索引器,事件的签名,但不能有实现,抽象类则可以. ③接口在增加新方法后,所有的继承者都必须重构,否则 ...

  6. Qt测算程序运行时间

    #include <QDebug> #include <QTime> #include <sys/time.h> #include <windows.h&gt ...

  7. 一个 react 小的 demo

    一.搭建开发环境: webpack构建工具. 新建一个文件夹(login),进入根目录, 1.输入命令:cnpm init,生成了一个package.json文件,这是一个标准的npm说明文件,里面蕴 ...

  8. &lbrack;javaEE&rsqb; HTTP协议总结

    OSI网络7层协议 物理层 ==> 数据链路层 ==> 网络层ip ==> 传输层 TCP UDP ==>会话层 ==>表示层 ==> 应用层 HTTP FTP S ...

  9. 31、iOS 正则表达式判断UITextField是否为全汉字,全字母,全数字,数字和字母

    判断全汉字 if ([self deptNameInputShouldChinese]) { [DemonAlertHelper showToastWithMessage:@"只能是中文&q ...

  10. jquery easyui datagrid 无滚动条,datagrid 没垂直滚动条

    jquery easyui datagrid 无滚动条,datagrid 没垂直滚动条 ============================== 蕃薯耀 2018年2月6日 http://www. ...