算法训练 操作格子 (线段树)

P2671 [NOIP2015 普及组] 求和 题目描述 一条狭长的纸带被均匀划分出了n个格子,格子编号从1到n。每个格子上都染了一种颜色colori​用[1,m]当中的一个整数表示),并且写了一个数字number_i​。 定义一种特殊的三元组:(x,y,z),其中x,y,z都代表纸带上格子的编号,这里的三元组要求满足以下两个条件: xyz是整数,x<y<z,y-x=z-y colorx=colorz 满足上述条件的三元组的分数规定为(x+z)×(numberx​+numberz​)。整个纸带的分数规定为所有满足. 阅读详情


Link:http://lx.lanqiao.org/problem.page?gpid=T18


问题描述

有n个格子,从左到右放成一排,编号为1-n。

共有m次操作,有3种操作类型:

1.修改一个格子的权值,

2.求连续一段格子权值和,

3.求连续一段格子的最大值。

对于每个2、3操作输出你所求出的结果。

输入格式

第一行2个整数n,m。

接下来一行n个整数表示n个格子的初始权值。

接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p=3时表示求区间[x,y]内格子最大的权值。

输出格式

有若干行,行数等于p=2或3的操作总数。

每行1个整数,对应了每个p=2或3操作的结果。

样例输入
4 3
1 2 3 4
2 1 3
1 4 3
3 1 4
样例输出
6
3
数据规模与约定

对于20%的数据n <= 100,m <= 200。

对于50%的数据n <= 5000,m <= 5000。

对于100%的数据1 <= n <= 100000,m <= 100000,0 <= 格子权值 <= 10000。

 
AC  code:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue> 
#include<map>
#include<vector>
#define LL long long
#define MAXN 1000010
using namespace std;
LL ans,ma;
LL a[MAXN];
struct node{
	int l,r;
	LL s;
	LL m;
}tree[MAXN*4]; 
void build(int rt,int l,int r)
{
	tree[rt].l=l;
	tree[rt].r=r;
	if(l==r)
	{
		tree[rt].m=a[l];
		tree[rt].s=a[l];
		return;
	}
	int mid=(l+r)/2;
	build(rt*2,l,mid);
	build(rt*2+1,mid+1,r);
	tree[rt].s=tree[rt*2].s+tree[rt*2+1].s;
	tree[rt].m=max(tree[rt*2].m,tree[rt*2+1].m);
}
void update(int rt,int pos,int val)
{
	if(tree[rt].l==pos&&tree[rt].r==pos)
	{
		tree[rt].s=val;
		tree[rt].m=val;
		return;
	}
	int mid=(tree[rt].l+tree[rt].r)/2;
	if(mid>=pos)
	{
		update(rt*2,pos,val);
	}
	else 
	{
		update(rt*2+1,pos,val);
	}
	tree[rt].m=max(tree[rt*2].m,tree[rt*2+1].m);
	tree[rt].s=tree[rt*2].s+tree[rt*2+1].s;
}
void q1(int rt,int ql,int qr)
{
	if(tree[rt].l==ql&&tree[rt].r==qr)
	{
		ans+=tree[rt].s;
		ma=max(ma,tree[rt].m);
		return;
	}
	int mid=(tree[rt].l+tree[rt].r)/2;
	if(mid>=qr)
		q1(rt*2,ql,qr);
	else if(mid<ql)
		q1(rt*2+1,ql,qr);
	else
	{
		q1(rt*2,ql,mid);
		q1(rt*2+1,mid+1,qr);
	}
}
int main()
{
	int n,m,i,j,k;
	while(cin>>n>>m)
	{
		for(i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		build(1,1,n);
		while(m--)
		{
			cin>>i>>j>>k;
			if(i==1)
			{
				update(1,j,k);
			}
			else
			{
				ans=0;
				ma=-1;
				q1(1,j,k);
				if(i==2)
				cout<<ans<<endl;
				else
				cout<<ma<<endl;
				
			}
		}
	}
	return 0;
}


CSP-J 2021 入门组/普及组 文章目录整体难度分析T1 分糖果T1分析T2 插入排序T2分析1. 常规解法2. 黑科技 pb_dsT3 网络连接T3分析T4 小熊的果篮T4分析 整体难度分析 整体来说这一场 CSP 的比赛难度并不高,四道题基本都是模拟题,至少有 310310310 分是纯暴力可以直接获得的 但是对代码量和细节问题的处理要求相对高一些,在 OI 的比赛模式中,很容易因为踩了一个坑导致分数非常低 整体来说难度不高,题目类型更加偏向于 CF 类的简单题 T1 分糖果 【题目背景】 红太阳幼儿园的小朋友们开始分糖果啦! 【题目 阅读详情

相关推荐

试题 算法训练 操作格子(暴力解法和线段树解法)

问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n个整数表示n个格子的初始权值。 接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,...

小郁同学 453

操作格子

问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n个整数表示n个格子的初始权值。 接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权...

weixin_34049032的博客 292

蓝桥杯_ 算法训练 操作格子

问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p...

A_Bo的博客 734

Comet OJ - 模拟赛 #2 Day2

题目描述 H 君是一个喜欢序列的男孩子,他给了你一个长度为 nnn 的序列。 H 君是一个喜欢求和的男孩子,他每次给了你一个区间 [x,y][x,y][x,y],要求你查询区间中数的和 可这样的题目太简单了,H 君想给你加大难度。 H 君会在询问之间穿插一些修改操作,每次它会给定整数 xxx 和 yyy,表示将所有下标是 xxx 的因数的数加 yyy。 输入描述 第一行两个整数 n,Qn, Qn,...

NJU phd 在读。 512

【蓝桥杯单片机组第十一届省赛】— 程序设计部分(第二场)

1、硬件框图 2、功能描述 2.1 基本功能 2.2 设计要求 2.3 显示功能 2.4 按键功能 2.5 DAC输出功能 2.6 LED指示灯功能 2.7 初始状态说明 3、代码实现 iic.h #ifndef _IIC_H #define _IIC_H //函数声明 void IIC_Start(void); void IIC_Stop(void); void IIC_SendByte...

Fanjufei的博客 8185

全球尺度遥感云计算平台:Google Earth Engine

Google Earth Engine(GEE)是一个基于 Google 云服务基础设施的遥感大数据分析平台,它结合 Google 强大的云计算能力与 NASA、ESA、NOAA 等机构的空间数据,用于在全球尺度解决一些非常重要的社会问题:森林退化、粮食安全、灾害预警、水资源管理、气候监测以及环境保护等。 GEE 官方宣传视频(版权归 Google 所有) Spacefan 的视频 ·303播放 发展背景 2008 年,手握 40 多年 LandSat 数据的美国地质调查局(USG...

qq_41240287的博客 5014

[蓝桥杯][算法训练][线段树] 操作格子

蓝桥杯 ALGO-8 算法训练 操作格子(线段树) 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n个整数表示n个格子的初始权值。 接下来m行,每行3个整数p,x,y,p表示操作类型,p=1...

cp0328的博客 3430

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲)

默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。

weixin_38828382的博客 1416

蓝桥杯 算法训练 操作格子 (线段树)

蓝桥杯历年真题题目及题解目录汇总 算法训练 操作格子 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。...

一叶之修的博客 674

FPGA人脸识别检测(先获取人脸图像以及灰度二值化)

由于图片有空洞等缺陷,所以后面要进行中值滤波、腐蚀、膨胀等算法处理,然后再对人脸进行框选,最后显示出来。最终的成像应该是下面这样的。(后面有时间再接着做哈哈哈)5、通过modelsim将操作后的图片数据写入gray_img.txt里面后,用matlab将txt转成图片。1、先用matlab将图片转换成txt数据,代码如下。读取图片的方式按照博客咸鱼里的方式来做,如下。2、FPGA读取txt数据。4、FPGA顶层模块及仿真。3、FPGA灰度二值化。

weixin_46312715的博客 2531

机器学习ROC曲线中的阈值thresholds

在ROC曲线上的不同点对应于不同的阈值。根据任务的具体要求,可以选择合适的阈值,以达到平衡召回率和误报率,或者根据具体应用场景调整模型的工作点。,表示样本属于正例的概率。这个概率值可以被截断为二元分类的决策,通过选择一个阈值来决定样本是被分类为正例还是负例。通过改变阈值,可以得到不同的真正例率(TPR)和假正例率(FPR),从而绘制出ROC曲线。总体来说,ROC曲线提供了模型在不同阈值下的性能综合情况,帮助分析模型的分类能力。通常来说,随着阈值的增加,TPR会减小,而FPR会增加。ROC曲线的绘制涉及。

行子的博客 3654

蓝桥杯 算法训练 操作格子(线段树)

算法训练 操作格子   时间限制:1.0s   内存限制:256.0MB        问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一

ninesun的博客 454

Java的API帮助文档

JDK帮助文档 SUN公司为JDK工具包提供了一整套文档资料,我们习惯上称之为JDK文档。 JDK文档中提供了Java中的各种技术的详细资料,以及JDK中提供的各种类的帮助说明。 JDk文档是Java语言的完整说明,大多数书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料 如何理解API:就当做是一个“字典”,“使用手册”,API就相当于是一个电子的帮助文档,可以帮我们查看JDK提供的类的信息,平时查看的时候可结合百度一起看。 官网下载: 1、登录Oracle官网(Oracl.

人生得意须尽欢 2万+

算法训练 操作格子 线段树

问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n个整数表示n个格子的初始权值。 接下来m行,每行3个整数p,x,y,p

Marcus-Bao的个人主页 887

大数据NiFi(十一):NiFi入门案例一

注意:数据写出的目录可以不需要提前在对应节点上创建,默认是可以自动创建,可以通过“Create Missing Directories”属性配置。将输出文件的权限设置为此属性的值,格式必须是UNIX rwxrwxrwx,用-来代替被拒绝的权限(例如rw-r--r--)或八进制数字(例如644),可以使用表达式,例如${file.permissions}。这里需要使用到的处理器是“GetFile”和“PutFile”,完成以上需求对“GetFile”和“PutFile”相关属性进行配置。

Lansonli(蓝深李)的博客 1489

下采样新突破!ADown模块让YOLOv11多尺度特征提取更精准

ADown 凭借可编程梯度信息与多分支特征聚合的创新设计,打破了传统下采样在特征保留上的固有局限。本教程从原理到代码实现,再到工业场景适配,完整呈现了其在 YOLOv11 中的集成路径。只需简单新增模块脚本并修改配置文件,你的目标检测模型就能在多尺度特征捕捉能力上实现跨越式提升——无论是学术研究中的小目标检测突破,还是工业场景下的复杂多尺度任务落地,ADown 都能成为你攻克下采样瓶颈的利器。现在就动手尝试,让你的检测模型在下一代下采样技术的创新中再上一个台阶吧。

know_F0727的博客 524

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-8 算法训练 操作格子 线段树

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-8算法训练 操作格子 线段树 前言 算法训练 操作格子 C语言 C++语言 Java语言 Python语言 第六届——第十三届省赛题解 第六届——第十二届省赛题解

红目香薰 298

YOLOv8改进-利用图像去雾网络UnfogNet提升检测精度的探索【附核心模块代码】

YOLOv8-UnfogNet联合模型的提出为目标检测和图像去雾领域提供了一个新的思路。通过将图像去雾网络和目标检测网络结合,不仅可以提升在恶劣天气下的目标检测精度,还能够为实际应用中的自动驾驶、监控安防等领域带来更强的鲁棒性和适应性。随着去雾技术和目标检测算法的不断发展,我们相信,这种联合方法将在多个领域中获得更加广泛的应用,并为进一步提升图像质量和检测精度做出重要贡献。

一键难忘的博客 3202

蓝桥杯 算法训练 操作格子 [ 线段树 ]

传送门 算法训练 操作格子 时间限制:1.0s 内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3...

weixin_34253539的博客 98

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

试题 算法训练 操作格子(线段树模板题)

资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n个整数表示n个格子的初始权值。 接下来m行,每行3个整数p,x,y, p表示操作类型,p=1时表示修改格子x的权值为

Easenyang的博客 1272

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

蓝桥杯 算法训练 操作格子 (线段树)

算法训练 操作格子   时间限制:1.0s   内存限制:256.0MB        问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一

Lionel 1133

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

蓝桥杯 算法训练 操作格子 (线段树)

题目链接:  http://lx.lanqiao.org/problem.page?gpid=T18 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n,m。 接下来一行n

爱拼才会赢 749

试题 ASGO-7 算法训练 操作格子

题目链接 试题 ASGO-7 算法训练 操作格子 线段树详解看这里——> 线段树详解 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个2、3操作输出你所求出的结果。 输入格式 第一行2个整数n...

tangzhide123yy的博客 652

蓝桥杯 算法训练 操作格子 (最基本的线段树)

某渣终于开始写了第一次线段树了,哇咔咔!!!!!!!!! 题目:   算法训练 操作格子   时间限制:1.0s   内存限制:256.0MB     锦囊1 锦囊2 锦囊3 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子

u012659423的专栏 1221

59-算法训练 操作格子 (线段树)

http://lx.lanqiao.cn/problem.page?gpid=T18                       算法训练 操作格子 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3...

weixin_30830327的博客 114
上一篇: 算法训练 关联矩阵
下一篇: 算法提高 6-17复数四则运算
林下的码路
博客等级 码龄12年 295粉丝 506原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值