hdu1754 线段树

线段树入门第一题! I Hate It HDU - 1754 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。  这让很多学生很反感。  不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input本题目包含多组测试,请处理到文件结束。  在每个测试的第一行,有两个正整数 N 和 M ( 0 学生ID编号分别从1编到N。  第二行包 阅读详情

难度:0.5

题意:

区间查询:l,r最大值

区间修改:单点修改下标A的值为B

思路:

区间信息:维护区间最大值

区间修改:单点暴力修改到叶子

AC:1074ms

#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
const int inf=0x3f3f3f;
struct Stree
{
	int val;
//	int lazy;
} sts[4*200005]; //开4倍
int a[200005];

int pushup(int root)
{
	sts[root].val=max(sts[root<<1].val,sts[root<<1|1].val);
}

void build(int l,int r,int root)//根节点从1开始吧
{
	if(l==r)//到达子节点
	{
		sts[root].val=a[l];
	}
	else
	{
	//	sts[root].val=sts[root].lazy=0;//没了这句会WA,清空lazy跟val 
		int mid=(l+r)>>1;//(l+r)/2
		build(l,mid,root<<1);
		build(mid+1,r,root<<1|1);
		pushup(root);//更新本节点
	}
}
int query(int nowl,int nowr,int ql,int qr,int root)
{
	if(nowl>=ql&&nowr<=qr)
	{
		return sts[root].val;
	}
//	pushdown(root);
	int mid=(nowl+nowr)>>1;
	int ans=-inf;
	if(ql<=mid)ans=max(ans,query(nowl,mid,ql,qr,root<<1));
	if(qr>mid)ans=max(ans,query(mid+1,nowr,ql,qr,root<<1|1));
	return ans;
}
void updateone(int nowl,int nowr,int idx,int addval,int root)
{
	if(nowl==nowr)
	{
		if(idx==nowl)    sts[root].val=addval;
		return ;
	}
//	pushdown(root);
	int mid=(nowl+nowr)>>1;
	if(idx<=mid)
		updateone(nowl,mid,idx,addval,root<<1);
	else
		updateone(mid+1,nowr,idx,addval,root<<1|1);
	pushup(root);
}

void op(int n);
int main()
{
	int n,m;char c[8];
	while(cin>>n>>m)
	{
		for(int i=1; i<=n; i++)
			scanf("%d",&a[i]);
		build(1,n,1);
	//	op(n);
		for(int i=1;i<=m;i++)
		{
			scanf("%s",&c);
		//	printf(">>>%s\n",c); 
			int l;int r;
			scanf("%d %d",&l,&r);
			if(c[0]=='Q')
			printf("%d\n",query(1,n,l,r,1));
			else if(c[0]=='U')
			updateone(1,n,l,r,1);
		} 
	}

}



void op(int n)
{
	printf("\n///////\n");
	int up=pow(2.0,ceil(log10((double)n)/log10(2.0))+1)-1;
	for(int i=1; i<=up; i++)
	{
		printf("%d ",sts[i].val);
		int t=log10((double)i+1.0)/log10(2.0);
		if(pow(2.0,t)==i+1)
		printf("\n");
	}
	printf("///////\n");
}


从机械到数字:EC11旋转编码器与ESP32的PWM控制艺术 本文详细解析了EC11旋转编码器与ESP32的PWM控制技术,探讨了如何将机械旋转动作转换为精确的数字信号控制。通过硬件连接、信号处理和软件优化等实践技巧,开发者可以构建高效的人机交互系统,适用于智能照明、电机控制等多种应用场景。 阅读详情

相关推荐

FPGA矩阵键盘计算器Verilog实现与Quartus仿真全流程解析

本文详细解析了基于FPGA和Verilog的矩阵键盘计算器实现全流程,包括矩阵键盘扫描、状态机设计、算术运算逻辑及数码管显示驱动。通过Quartus仿真与Testbench测试,确保设计稳定性与准确性,适合数字逻辑设计初学者学习FPGA开发与硬件描述语言应用。

chair的专栏 742

HDU 1754 线段树

原文链接: HDU 1754 线段树 上一篇: ...

阿豪 104

2026年AI编程工作流实战:Claude Code与Open Code深度对比

AI编程已从代码生成工具升级为IDE级智能工作流核心能力。其本质是将大语言模型深度嵌入开发环境,通过语义理解、上下文感知与行动闭环重构传统编码范式。Claude Code以企业级知识图谱和双轨Code Review为代表,强调合规性、可审计与深度集成;Open Code则依托Skill可组合性、本地优先模型与ocp协议,实现开源驱动的灵活扩展。二者共同推动IDE从‘编辑器’进化为‘数字搭档’——能理解RFC文档、记住PR评论、自动补全带重试的fetch逻辑,并在Promise链发呆时一键重构为async/a

weixin_33739523的博客 462

HDU1754 I Hate It 线段树单点更新

HDU1754 I Hate It/*线段树单点更新 967MS 3580K */ #include &lt;stdio.h&gt; #include &lt;algorithm&gt; using namespace std; const int MAX=2*1e5+5; int tree[MAX*4]; void read(int &amp;x)//读入优化 { int f=1;x=0...

Qianyri的博客 293

dos攻击 --hping3

dos使用hping3攻击

qq_65880213的博客 2746

unity中基于NGUI实现一张图片上在某个地方挖个洞

按照策划的要求,引导时只有被引导的图片是高亮的,其余地方都是黑色半透明,如下图所示: 对应的实现shader如下: Shader "Unlit/TutorialBg" { Properties { _MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {} _ClipRange0 ("Clip Vector

手机游戏开发 3698

【线段树】HDU 1754 I Hate It

HDU 1754 I Hate It 单点修改,区间查询 线段树模板题 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <s...

L_X_ 180

NLP高频面试题(三十一)——多模态预训练模型的主要结构、特征对齐与融合方法及对比损失函数详解

多模态预训练模型通过创新的架构设计和训练策略,在跨模态理解和表示学习上取得了显著进展。从单塔到双塔,从编码器-解码器混合到图结构模型,研究者们探索了不同的模态融合途径;配合显式与隐式对齐手段以及有效的对比学习损失,当前的多模态模型已经能够在图文检索、视觉问答、图像描述生成等任务上接近甚至超越专门的有监督模型。可以说,多模态预训练成为了继NLP和CV单模态预训练之后的又一个AI热点领域。模型规模与泛化:与单模态的大型预训练模型类似,多模态模型的参数规模和训练数据规模在迅速增长。

WeLearnNLP 2924

线段树/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...

dkkzxga4442的博客 180

量化交易python代码解析:从狙击手算法到最优限价算法

在金融市场的竞技场上,量化交易如同一位冷静的策略大师,它以数学模型为剑,以计算机程序为盾,精准出击,捕捉市场的微妙波动。本文将深入探讨五种核心量化交易算法:直接委托算法(DMA)、时间加权平均算法(TWAP)、冰山算法(Iceberg)、狙击手算法(Sniper)、条件委托算法(Stop)以及最优限价算法(BestLimit),揭开它们背后的运作机制与实战应用。

木头大左的博客 1884

Android Framework WMS面试题及参考答案

什么是 WindowManagerService(WMS)?它的作用是什么? WindowManagerService(WMS)是 Android 系统中非常重要的一个系统服务。它运行在系统进程(system_server 进程)中。 从本质上来说,WMS 是 Android 窗口管理系统的核心。它负责管理系统中的所有窗口,包括应用程序窗口、系统窗口(如状态栏、导航栏)等。 它的主要作用有很多。首先是窗口的创建和销毁。当一个应用请求创建一个窗口时,WMS 会协调各个模块完成窗口的创建工

大模型大数据攻城狮的专栏 2163

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 很多学校流行一种比较的习...

timelooper的博客 221

Codesys入门-新建工程+任务调用+编译+调试

程序组织单元(Program Organization Unit, POU)由声明区和代码区组成,是用户程序的最小软件单元,它相当于传统编程系统中的块(Block),按功能程序组织单元(POU)可分为函数(FUN)、功能块(FB)、程序(PRG)。:Codesys采用多任务的方式来执行用户程序的“任务”,而每个“任务”分配了不同的执行周期,有些全局变量可能要在不同的POU之间被访问和修改,于是需要对全局变量进行交互同步,也是在任务的“时间对准点”进行的,实例:声明了INT类型,变量名为输入;

刺客 1万+

线段树入门经典题/HDU1166/HDU1754

今天学习了一下线段树最简单的单点的思想,一开始有点难懂,理解了的话就还好。这两道题本质都差不多,以后有时间可能会更其他线段树的思路分享,这里就先放题目和代码: HDU1166:题目描述 更新单点,求区间总和 #include<cstdio> #include<algorithm> using namespace std; const int MAXN=50005; int ...

弋墨尘的博客 455

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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 为...

Pandora_heart的博客 276

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

线段树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

1.3秒前 375

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

线段树之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

Must so 517

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 很多学校流行一种比较的习惯。老师们很喜欢询问,从某...

qq_43966202的博客 304

HDU1754 I Hate It,线段树

线段树的简单题,整整1000+ms!!!看来要优化一下 /******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-01-17 20:35

Neo Fung的专栏 587

HDU 1754 I Hate It 线段树模板

暑假ACM俱乐部训练三周,内容分别是图论基础、区间数据结构、字符串处理。训练题虽说都是类似模板题,但初学的我想弄明白还是有些困难的,经常一道题就坐在那里想半天,但做出来还是非常有成就感。虽然没有在学校训练,夜深人静的时候做题感觉还是挺好的,每天打下一点点基础,有所收获就通过博客记录下来,也方便以后回过头来复习查看。 HDU 1754 I Hate It [题目内容] 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就

weixin_46283740的博客 376

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...

145

线段树 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&gt

Zoybzo想AK 149

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

454

HDU - 1754 I Hate It (线段树模板题)(注释详解)

HDU - 1754 I Hate It (线段树模板题) Problem 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的...

四季不败的博客 330

AI原生编辑器深度测评:Cursor、Trae、Qoder谁更能提升编程效率?

在AI编程工具浪潮下,开发者常困惑于选择传统IDE加AI插件还是直接迁移到AI原生编辑器。二者的本质区别在于架构:插件仅提供对话式辅助,而原生编辑器将模型、索引与终端执行深度集成,让Agent能自主完成跨文件修改、命令运行与测试验证。从智能代码补全到上下文工程,AI原生编辑器正重塑开发工作流。本文基于实际体验,对比Cursor、Trae、Qoder在Tab补全、Agent执行、仓库理解、成本与隐私等维度的表现,剖析各自优势与坑点,并给出选型建议,帮助开发者根据自身工作流选出真正提升效率的AI编程IDE。

weixin_34411563的博客 365

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

LucienShui 561
上一篇: 来波最近刷题的总结=w=
下一篇: hdu1698 线段树
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值