Hdu1754 I Hate It 线段树、单点更新+区间最值

complier lab2 只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...} 阅读详情

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
Hint
Huge input,the C function scanf() will work better than cin

Author
linle

Source



#include <iostream>
#include <cstdio>
#include <map>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long LL;
struct node{
    int l,r;
    int high;
    int mid(){
        return (l+r)/2;
    }
}tree[800005];
void buildtree(int root,int l,int r)
{
    if(l==r){
        tree[root].l=tree[root].r=l;
        tree[root].high=0;
        return;
    }
    tree[root].l=l;
    tree[root].r=r;
    tree[root].high=0;
    buildtree(2*root,l,tree[root].mid());
    buildtree(2*root+1,tree[root].mid()+1,r);
}
void nodeinsert(int root,int i,int v)
{
    if(tree[root].l==tree[root].r){
        tree[root].high=v;
        return;
    }
    if(v>tree[root].high){
        tree[root].high=v;
    }
    if(i<=tree[root].mid()){
        nodeinsert(2*root,i,v);
    }else{
        nodeinsert(2*root+1,i,v);
    }
}
int query(int root,int l,int r)
{
    int maxn=0;
    if(tree[root].l==l&&tree[root].r==r){
        return tree[root].high;
    }
    if(r<=tree[root].mid()){
        return query(2*root,l,r);
    }else if(l>tree[root].mid()){
        return query(2*root+1,l,r);
    }else{
        return max(query(2*root,l,tree[root].mid()),
        query(2*root+1,tree[root].mid()+1,r));
    }
    return maxn;
}
int main()
{
    int n,m,x,p,q;
    char s[10];
    while(~scanf("%d%d",&n,&m)){
        buildtree(1,1,n);
        for(int i=1;i<=n;i++){
            scanf("%d",&x);
            nodeinsert(1,i,x);
        }
        while(m--){
            getchar();
            scanf("%s%d%d",s,&p,&q);
            if(s[0]=='Q'){
                printf("%d\n",query(1,p,q));
            }else{
                nodeinsert(1,p,q);
            }
        }
    }
    return 0;
}


C# 基于NetStandard.Opc.Ua实现高效OPC UA数据订阅与同步读写 本文详细介绍了在C#中利用NetStandard.Opc.Ua库高效实现OPC UA数据订阅与同步读写的方法。通过实战代码演示了如何建立连接、配置订阅管理器、优化监控项分组,并对比了同步与异步读写的适用场景,帮助工业软件开发者构建稳定可靠的数据采集客户端,提升工业物联网应用开发效率。 阅读详情

相关推荐

Halcon dyn_threshold详解

dyn_threshold 原型 dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能 利用局部阈值分割图像 参数列表 OrigImage (input_object):原始图像 ThresholdImage (input_object):处理后图像(一般采用滤波处理) RegionDynThresh (output_object):分割后区域 Offset (input_control):灰

ZiLiangQin的博客 1万+

HDU 1754 I hate it 【线段树--单点更新,区间最值】

链接:click here~~  题意: 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0 学生I

herongwei 的 BLOG 1128

COMSOL模拟CO2驱替CH4:多物理场耦合建模与工程应用详解

在非常规天然气开发与碳封存工程中,多孔介质内的渗流、吸附与岩石变形相互耦合,使得CO2驱替CH4的产能预测和CO2封存评估无法仅靠经验公式完成。以达西定律描述裂隙流动、以扩展Langmuir方程刻画竞争吸附、用应力-吸附-渗透率关系关联煤岩变形,是多物理场耦合数值模拟的核心路径。COMSOL Multiphysics凭借内置渗流、固体力学与组分传递接口,能够将这些机制整合为可参数化扫描的仿真模型,为注气压力、井距、渗透率演化等方案设计提供量化依据。围绕CO2驱替CH4模拟的建模流程、参数取法与结果判读,可形

weixin_29574585的博客 160

hdu 1754 I Hate It (线段树功能:单点更新和区间最值)

版权声明:本文为博主原创文章。未经博主同意不得转载。vasttian https://blog.youkuaiyun.com/u012860063/article/details/32982923 转载请注明出...

weixin_30318645的博客 115

MATLAB实现灰雁优化算法(GGO):从原理到实战的详细级教程

灰雁优化算法(GGO)是一种新型群体智能算法,模拟灰雁迁徙和觅食行为。算法通过领导更替机制、V形编队飞行和群体觅食策略,平衡全局探索与局部开发能力,具有收敛精度高、避免局部最优等特点。在MATLAB环境中,算法实现包括初始化种群、迭代更新领导雁、执行编队飞行和觅食行为等核心模块。用户可根据问题维度设置参数,通过收敛曲线和可视化分析评估性能。关键参数如领导更替频率、V形编队强度和觅食强度需根据问题复杂度调整,以获得最佳优化效果。该算法适用于各类优化问题,具有较好的鲁棒性和稳定性。

fx666_的博客 1212

计算pi小数点后10000位

数据结构课上,老师让我们计算一下pi的10000位,复习一下面向对象。 First Try:定义一个高精度类hp(high precision),实现加减乘除,输入输出,然后随便找一个公式,比如Wallis公式,全都用hp进行计算。 现实是:大数乘大数或者大数除大数,实在是太慢了。而且Wallis公式收敛太慢。 Second Try先找到一个收敛较快的公司:BBP公式,观察公式发现,...

我的技术人生 7394

HDU 1754 I Hate It【线段树,区间最值,单点更新,结构体】

线段树区间最值入门题,之前用线段树写过,今天结构体数组来一发。 原来线段树链接:http://blog.youkuaiyun.com/hurmishine/article/details/51959662 有个坑呀。看代码注释。

AC_Dreameng 530

25、BDS-3卫星信号性能与PPP-B2b增强消息完整性分析

本文对BDS-3卫星信号性能及PPP-B2b增强消息的完整性进行了系统分析。评估了MEO、IGSO和GEO卫星的轨道与时钟精度,得出BDS-3总体SISRE为0.25 m,系统完整性可覆盖99.999%的误差。分析表明SIS中断主要由时钟调整和轨道机动引起,个别卫星存在因境外监测受限导致的非计划中断。通过自研解码软件对PPP-B2b增强消息进行采集与解析,实验结果显示BDS-3和GPS的平均历元完整性率均高于98.55%,其中卫星掩码和时钟校正消息的完整性率超过99.8%。研究还发现IGSO卫星相比MEO卫

quiet的专栏 144

HDU 1754 I Hate It(线段树单点更新求区间最值)

http://acm.hdu.edu.cn/showproblem.php?pid=1754 题意 中文题面不解释 思路 就是一个单点更新求区间最值的裸题,给新手入门线段树比较好,有什么问题留言吧。 1 #define IO std::ios::sync_with_stdio(0); 2 #include <bits/stdc++.h> 3 #define it...

weixin_33933118的博客 137

滑模观测器与锁相环结合应用:让电机“无感”也能精准旋转的奥秘

本文介绍了永磁同步电机无传感器控制中的滑模观测器(SMO)结合锁相环(PLL)技术。SMO通过创建虚拟电机模型,利用电流误差产生控制信号来估计反电动势;PLL则从反电动势中解码转子位置和速度信息。该组合方案兼具SMO的鲁棒性和PLL的高精度,计算量小且硬件要求低。文章详细阐述了原理、数学模型、参数整定方法及实际实现技巧,包括离散化处理、符号函数替代等优化手段,并分析了低速性能限制、抖振问题等常见挑战及解决方案。最后指出该技术未来将与人工智能、多观测器融合等方向结合发展。

汽车软件开发 193

16、Arduino MEGA 2560 固件与电路详解

本文详细介绍了Arduino MEGA 2560的固件编程与电路设计,涵盖ATmega16U2和ATmega2560的熔丝配置、stk500v2引导加载程序的备份与恢复方法、使用Microchip Studio通过ICSP烧录固件的步骤,以及debugWIRE和JTAG调试接口的选择与配置。同时提供了电路块图解析、组件位置参考及常见问题解决方案,帮助用户深入理解硬件结构并进行高效开发与调试。

swift5iosmith的博客 194

HDU 1754 I Hate It(线段树之单点更新 区间最值查询)

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 101699    Accepted Submission(s): 38294 Problem Description 很多学校流行一种比较的习惯。老师们很...

Y先森0.0 150

反应动力学仿真软件:Kintecus_(3).Kintecus安装与配置

在本节中,我们将详细介绍如何安装和配置Kintecus反应动力学仿真软件。Kintecus是一款功能强大的工具,用于模拟和分析化学反应的动力学过程。正确安装和配置软件是开始使用它的第一步。我们将分步骤介绍软件的安装过程,并提供一些基本配置的示例。

kkchenjj的博客 1553

hdu 1754 I Hate It(线段树单点更新及区间最值)

http://acm.hdu.edu.cn/showproblem.php?pid=1754 做了hdu 1166以后,感觉这个题好简单,只不过那个是区间求和,这个是区间求最值而已。。。 #include #include #include using namespace std; const int maxn = 200005; struct line { int

1118

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hdu1754 I Hate It(线段树,单点更新,区间最值)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1754 思路: 线段树,实现单点更新,区间最值查询 注意: 注意字符的处理,要么用getchar()来处理,要么用字符数组来处理。 代码: #include #include #include #include using namespace s

酱油拌面 330

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu-1754 I Hate It(线段树,单点更新,区间最值查询)

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 107418    Accepted Submission(s): 40317   Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询...

欢迎访问方偲的博客 261

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

HDU1754 I Hate It 线段树(单点更新,区间最值)

I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 49659 Accepted Submission(s): 19502 Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从

Jonariguez 吾本优秀 484

hdu 1754 I Hate It 线段树 单点更新 区间最值

线段树功能:update:单点更新 query:区间最值 #include <bits/stdc++.h> #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 using namespace std; const int MAXN = 200008; int maxs[MAXN<&...

weixin_33824363的博客 147

线段树 hdu 1754 I Hate It 单点更新 区间求最值

I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 23163    Accepted Submission(s): 9257 Problem Description 很多学校流行一种比较的习惯。老

Azarath Metrion Zinthos 913

HDU 1754 I Hate It(线段树之单点更新,区间最值)

I Hate It Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 70863Accepted Submission(s): 27424 Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问...

weixin_33890526的博客 145

hdu 1754 I Hate It(线段树之 单点更新+区间最值)

I Hate It                                                                             Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description

LYHVOYAGE的专栏 1782

hdu 1754 I Hate It 线段树 单点更新 求区间最值

题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=1754   接下来有M行。每一行有一个字符 C (只取'Q'或'U') ,和两个正整数A,B。当C为'Q'的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。当C为'U'的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。   代码如下:

zn505119020的专栏 446
上一篇: Poj2828 Buy Tickets 线段树、单点更新
下一篇: Hdu5671 Matrix 矩阵、行列交换+行列加值
Megumin
博客等级 码龄10年 3粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值