//线段树 HUD 1754
//http://acm.hdu.edu.cn/showproblem.php?pid=1754
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int Maxn = 200002;
typedef struct //结构体用来建立数线段树,保存左右叶子以及区间的最大值
{
int Max;
int left, right;
} NODE;
int n, m;
int num[Maxn];
NODE tree[Maxn*20];
int build(int root, int left, int right)//建立线段树
{
int mid;
tree[root].left = left;//当前节点表示的区间
tree[root].right = right;
if(left == right)//若左右区间相同,那么此时的最大值就是root所对应的num[root]的值
return tree[root].Max = num[left];
mid = (left+right)/2;//去中间点
int a, b;
a = build(root*2,left,mid);//当前左子树在细分
b = build(root*2+1,mid+1,right);//当前右子树在细分
return tree[root].Max = max(a,b);//返回当前子树的最大值并储存在tree[root].Max中
}
int find_(int root, int left, int right)//查找从letf到right之间的最大值
{
if(left>tree[root].right || tree[root].left>right)//若所给的区间不在该子树的区间内,返回0
return 0;
if(left<=tree[root].left && tree[root].right<=right)//若所给的区间包含了该子树的区间,返回该子树的最大值
return tree[root].Max;
int a, b;
a = find_(root*2,left,right);//当前左子树细分查找
b = find_(root*2+1,left,right);//当前右子树细分查找
return max(a,b);//返回当前子树的最大值
}
int updata(int root, int x, int y)//更新某点的值
{
if(x<tree[root].left || tree[root].right<x)//若该点不在当前子树的区间内,就返回当前子树的最大值
return tree[root].Max;
if(tree[root].left==x && tree[root].right==x)//当该点恰好和当前子树区间相同时,当前子树的最大值就更新为给定的数y
return tree[root].Max = y;//并返回最大值
int a, b;
a = updata(root*2,x,y);
b = updata(root*2+1,x,y);
return tree[root].Max = max(a,b);//返回当前子树的最大值
}
int main()
{
char c;
int x, y;
while(cin >> n >> m)
{
for(int i = 1; i <= n; i++)
cin >> num[i];
build(1,1,n);//建立线段树
while(m--)
{
cin >> c >> x >> y;
if(c == 'Q')
{
cout << find_(1,x,y) << endl;
}
if(c == 'U')
{
num[x] = y;
updata(1,x,y);
}
}
}
return 0;
}
相关推荐
Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南
本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。
HDU1754 I Hate It 线段树单点更新
HDU1754 I Hate It/*线段树单点更新 967MS 3580K */ #include <stdio.h> #include <algorithm> using namespace std; const int MAX=2*1e5+5; int tree[MAX*4]; void read(int &x)//读入优化 { int f=1;x=0...
告别OLE!Delphi操作Excel的3种轻量级方案横向评测(FlexCel/XLSReadWriteII/LibXL)
本文深入评测了Delphi操作Excel的三种轻量级方案:FlexCel、XLSReadWriteII和LibXL。通过技术架构、API设计、性能测试和实战案例的全面对比,帮助开发者选择最适合的工具,提升Excel文件处理效率,告别传统OLE方案的依赖和性能问题。
【线段树】HDU 1754 I Hate It
HDU 1754 I Hate It 单点修改,区间查询 线段树模板题 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <s...
SAP MIRO发票自动化:BAPI_INCOMINGINVOICE_CREATE实战解析
本文深入解析了如何使用SAP标准BAPI_INCOMINGINVOICE_CREATE实现MIRO发票校验流程的自动化。通过实战代码示例,详细阐述了从采购订单和收货凭证获取数据、构建BAPI核心参数、处理常见错误到高级场景优化的完整路径,旨在帮助SAP开发人员构建稳定、高效的自动化解决方案,提升财务处理效率与准确性。
华为OD机试真题 新系统【网络数据包收发处理】
华为OD机试 新系统真题【网络数据包收发处理】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【网络数据包收发处理】多语言题解。
线段树/hdu1754 I Hate It
题意 有n个学生一字排开,m个操作: Q a b 查询[a,b]中分值最高的分,并输出 U a b 把第a个学生的成绩改为b 分析 单点修改的裸线段树 Accepted Code 1 /* 2 PROBLEM:hdu1754 3 AUTHER:Rinyo 4 MEMO:线段树 5 */ 6 7 8...
【Python图像处理局部放大】输入图像,选择两处不同的区域进行放大操作,然后将原始图像、处理后的两个区域以及标记合成新图像进行展示
Python图像处理与区域放大连接标记:选择特定区域并对其进行放大操作,然后将原始图像、处理后的两个区域进行标记后的新图像保存到文件中。
HDU-1754 线段树求区间最值
HDU-1754 I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 102384 Accepted Submission(s): 38495 Problem Description 很多学校流行一种比较的习...
UG\NX二次开发 获取对象的引用集
获取对象的引用集,一个对象可能有多个引用集,下面这个封装函数可以获取对象的所有引用集。
SAP Fiori Launchpad 自定义层文本翻译实战:精准修正 Tile、Catalog 与 Group 标题
SAP Fiori 项目中,入口层(tile/catalog/group)的翻译问题常被忽视,但其直接影响用户体验。与前端i18n不同,这些文本属于平台配置数据,需通过ABAP标准翻译流程(SE63)处理。关键步骤包括:使用/UI2/FLC定位Text ID和Configuration ID,根据前缀区分Main/Property WD Config Key,在SE63中锁定WDY_CONF_USERT2表对象进行翻译。操作时需注意使用系统源语言环境,翻译完成后可能需要清理缓存。
线段树入门经典题/HDU1166/HDU1754
今天学习了一下线段树最简单的单点的思想,一开始有点难懂,理解了的话就还好。这两道题本质都差不多,以后有时间可能会更其他线段树的思路分享,这里就先放题目和代码: HDU1166:题目描述 更新单点,求区间总和 #include<cstdio> #include<algorithm> using namespace std; const int MAXN=50005; int ...
使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)
如何让AI玩会贪食蛇,甚至比你厉害概述构建问题(强化学习求解的一般步骤)环境动作定义状态定义奖励设计训练奖励值收敛图效果代码 概述 所用技术:强化学习(Deep Reinforcement Learning),属于一种无监督学习,利用奖励rewardrewardreward教会智能体AgentAgentAgent在合适的场景做合适的决策。 采用算法:试过两种算法D3QN和离散版本的PPO算法,最终采用离散版本PPO算法+GAE(PPO是我用过的性能最好的算法之一) 编程语言与深度学习框架:Python3.
HDU 1754 - I Hate It(线段树)
- HDU 1754 - I Hate It Time limit : 3000 ms | Memory limit : 32768 kB 题意: 有多组测试,每个测试第一行給定两个正整数 n、m,代表学生数和操作数,学生ID从 1 到 n 编号; 第二行有 n 个整数,代表这 n 个学生的初始成绩; 接下来 m 行,每行有一个字符 c(只取‘Q’或‘U’),和两个正整数 A, B; 当 c 为...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
线段树之HDU 1754 I hate it
题目:HDU 1754 I hate it! //Must so #include #define mem(a,x) memset(a,x,sizeof(a)) #define sqrt(n) sqrt((double)n) #define pow(a,b) pow((double)a,(int)b) #define inf 1<<29 #define NN 200006 using names
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
线段树HDU——1754(单点替换,区间最值)
HDU——1754 I Heat It //线段树功能:update:单点替换 query:区间最值 //当ch为'Q'的时候,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。 //当ch为'U'的时候,要求把ID为A的学生的成绩更改为B。 #include #include #include #include #include #include #define
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字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): 108841 Accepted Submission(s): 40748 Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某...
HDU 1754 I Hate It 线段树模板
暑假ACM俱乐部训练三周,内容分别是图论基础、区间数据结构、字符串处理。训练题虽说都是类似模板题,但初学的我想弄明白还是有些困难的,经常一道题就坐在那里想半天,但做出来还是非常有成就感。虽然没有在学校训练,夜深人静的时候做题感觉还是挺好的,每天打下一点点基础,有所收获就通过博客记录下来,也方便以后回过头来复习查看。 HDU 1754 I Hate It [题目内容] 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就
HDU1754 I Hate It,线段树
线段树的简单题,整整1000+ms!!!看来要优化一下 /******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-01-17 20:35
线段树 HDU1754 LG1531 I Hate It
题目 题目链接: HDU1754 LG1531 题解 线段树的板子题。注意两个题不太一样,HDU是多组数据,LG只有一组数据。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> #include<string> #include<queue>
HDU 1754 I Hate It(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 今天刚刚接触线段树,做的第一道入门类型的题,WA四次后,终于过了~ #include #include #include #include #include #include #include #include #include #include #include #i
HDU 1754 I Hate It 线段树 RMQ 支持修改数列的值
//http://acm.hdu.edu.cn/showproblem.php?pid=1754 //4671581 2011-09-28 14:15:02 Accepted 1754 265MS 6452K 2127 B G++ nkhelloworld //4671584 2011-09-28 14:15:21 Accepted 1754 218MS 6388K 2127 B...
AI原生编辑器深度测评:Cursor、Trae、Qoder谁更能提升编程效率?
在AI编程工具浪潮下,开发者常困惑于选择传统IDE加AI插件还是直接迁移到AI原生编辑器。二者的本质区别在于架构:插件仅提供对话式辅助,而原生编辑器将模型、索引与终端执行深度集成,让Agent能自主完成跨文件修改、命令运行与测试验证。从智能代码补全到上下文工程,AI原生编辑器正重塑开发工作流。本文基于实际体验,对比Cursor、Trae、Qoder在Tab补全、Agent执行、仓库理解、成本与隐私等维度的表现,剖析各自优势与坑点,并给出选型建议,帮助开发者根据自身工作流选出真正提升效率的AI编程IDE。
I Hate It - HDU 1754 线段树
I Hate It - HDU 1754 线段树 国际惯例中文题目不需要解释题意。 思路:也是个水体,直接裸线段树就可以,没有什么需要注意的地方。写的时候有一个小错误就是刚开始我在本地运行的时候发现Q 1 5一直是零,结果发现是build函数没有写到main里去。AC代码:// // main.cpp // L // // Created by LucienShui on 2017/5/2
HDU - 1754 I Hate It (线段树模板题)(注释详解)
HDU - 1754 I Hate It (线段树模板题) Problem 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的...
hdu 1754 I Hate It(最简单的线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 没有任何变型,所以直接贴代码。 #include #include #include #include #include #include using namespace std; const int maxn = 200005; const int oo = 0xfffffff; #
320



被折叠的 条评论
为什么被折叠?



