【ybt】【数据结构 线段树 课过 例4】维护序列

QT | QT打包生成单个EXE文件 1.以release方式运行程序 2.在release文件夹中找到.exe文件 如果没有找到exe,可能是因为在项目中勾选了shadow build,你可以在构建目录中找到exe 3.将exe放在一个新建的文件夹中,因为待会儿会生成很多dll文件 4.点击电脑左下角搜索QT,打开Qt 5.8 for Desktop (MinGQW 5.3.0 32bit) 5.进入刚刚新建的文件夹,输入wi... 阅读详情

维护序列

题目链接:YbtOJ/Luogu


在这里插入图片描述

解题思路

线段树模板题

code

#include<iostream>
#include<cstdio>
#define int long long
using namespace std;

int n,m,mod;

struct abc{
	int s;
	int flg1,flg2;
}tree[400010];

void build(int now,int l,int r)
{
	tree[now].flg1=1;
	if(l==r)
	{
		scanf("%lld",&tree[now].s);
		return;
	}
	int mid=(l+r)/2;
	build(now*2,l,mid);
	build(now*2+1,mid+1,r);
	tree[now].s=(tree[now*2].s+tree[now*2+1].s)%mod;
}

void down(abc &now,abc &l,abc &r,int x,int y)
{
	int mid=(x+y)/2;
	l.s=(l.s*now.flg1+(mid-x+1)*now.flg2)%mod;
	r.s=(r.s*now.flg1+(y-mid)*now.flg2)%mod;
	l.flg1=(l.flg1*now.flg1)%mod;
	l.flg2=(l.flg2*now.flg1+now.flg2)%mod;
	r.flg1=(r.flg1*now.flg1)%mod;
	r.flg2=(r.flg2*now.flg1+now.flg2)%mod;
	now.flg1=1;
	now.flg2=0;
}

void change1(int now,int l,int r,int x,int y,int w)
{
	if(x<=l&&r<=y)
	{
		tree[now].s=(tree[now].s*w)%mod;
		tree[now].flg1=(tree[now].flg1*w)%mod;
		tree[now].flg2=(tree[now].flg2*w)%mod;
		return;
	}
	int mid=(l+r)/2;
	down(tree[now],tree[now*2],tree[now*2+1],l,r);
	if(x<=mid)
		change1(now*2,l,mid,x,y,w);
	if(y>mid)
		change1(now*2+1,mid+1,r,x,y,w);
	tree[now].s=(tree[now*2].s+tree[now*2+1].s)%mod; 
}

void change2(int now,int l,int r,int x,int y,int w)
{
	if(x<=l&&r<=y)
	{
		tree[now].s=(tree[now].s+(r-l+1)*w)%mod;
		tree[now].flg2=(tree[now].flg2+w)%mod;
		return;
	}
	int mid=(l+r)/2;
	down(tree[now],tree[now*2],tree[now*2+1],l,r);
	if(x<=mid)
		change2(now*2,l,mid,x,y,w);
	if(y>mid)
		change2(now*2+1,mid+1,r,x,y,w);
	tree[now].s=(tree[now*2].s+tree[now*2+1].s)%mod; 
}

int fd(int now,int l,int r,int x,int y)
{
	if(x<=l&&r<=y)
		return tree[now].s;
	int mid=(l+r)/2,ans=0;
	down(tree[now],tree[now*2],tree[now*2+1],l,r);
	if(x<=mid)
		ans=(ans+fd(now*2,l,mid,x,y))%mod;
	if(y>mid)
		ans=(ans+fd(now*2+1,mid+1,r,x,y))%mod;
	return ans;
}

signed main()
{
	cin>>n>>mod;
	build(1,1,n);
	cin>>m;
	while(m--)
	{
		int k,t,g,c;
		scanf("%lld%lld%lld",&k,&t,&g);
		if(k==1)
		{
			scanf("%lld",&c);
			change1(1,1,n,t,g,c);
		}
		if(k==2)
		{
			scanf("%lld",&c);
			change2(1,1,n,t,g,c);
		}
		if(k==3)
			cout<<fd(1,1,n,t,g)<<endl;
	}
}
功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发 本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。 阅读详情

相关推荐

计算机组成原理(二)—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码二、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7473

[AHOI 2009]维护序列

线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。

ahwhQZY的博客 372

Mooncake架构:基于KVCache解耦的LLM推理优化方案

在大语言模型推理中,KVCache是Transformer解码过程中用于缓存历史Key/Value向量的核心数据结构,它避免了序列重复计算,但会随上下文长度线性增长,成为显存占用的主要部分。其原理是在自回归生成时,将已计算过的注意力键值对存储下来,供后续Token生成时直接使用,从而提升计算效率。这项技术的核心价值在于,通过高效管理KVCache,可以显著降低长序列推理时的显存压力,提升GPU资源利用率。在实际应用场景中,尤其是在处理长上下文对话、高并发请求时,KVCache的管理策略直接决定了服务的吞吐量

weixin_35753431的博客 533

维护序列

维护序列维护序列维护序列 题目链接:luogu 2023 题目 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式: 把数列中的一段数全部乘一个值; 把数列中的一段数全部加一个值; 询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。 输入 第一行两个整数NNN和PPP。 第二行含有NNN个非负整数...

欢迎您的光顾awa 1286

AUTOSAR E2E Protocol实战:Profile1到Profile5的配置差异与最佳实践

本文深入解析AUTOSAR E2E Protocol中Profile1到Profile5的核心配置差异与适用场景。针对经典CAN、CAN FD及以太网等不同总线,详细对比了计数器、CRC、DataID等关键参数,并结合实战代码与配置示例,为工程师根据功能安全等级、数据长度与带宽限制选择最佳Profile提供了清晰的选型路径与工程实践指南。

milk5的博客 944

2025最新!视频动作识别算法的前沿研究与论文解读

2025最新!视频动作识别算法的前沿研究与论文解读 ,人工智能,计算机视觉,大模型,AI,本文聚焦2025年视频动作识别算法前沿,先介绍其定义、意义及核心挑战,再阐述传统与深度学习方法。还解读了基于Transformer、轻量化、跨模态融合和半监督学习的前沿研究,解释关键概念,列举常用数据集、评价指标,分析当前问题与未来趋势,为该领域研究提供全面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

【Ybtoj 第17章例4】维护序列【线段树】

解题思路 我们考虑用懒标记,当对一个区间打标记时要保证以先乘后加的形式,mul表示乘多少,pul表示加多少,sum表示区间和。 下传标记时, sum[lson]∗=mul[fa],sum[rson]∗=mul[fa],sum[lson]+=pul[fa]∗(mid−l+1),sum[rson]+=pul[fa]∗(r−mid)sum[lson]*=mul[fa],sum[rson]*=mul[fa],sum[lson]+=pul[fa]*(mid-l+1),sum[rson]+=pul[fa]...

在人间贩卖声音 197

本地 AI 自由!OpenClaw+Ollama 双系统部署教程(Windows/Linux),零成本离线跑大模型

本文详细介绍了如何在Windows和Linux双系统中部署OpenClaw AI助手,并通过Ollama对接本地大模型实现完全离线使用。教程包含环境准备、OpenClaw安装配置、Ollama本地模型部署、系统对接等完整流程,特别强调隐私安全和零Token消耗的优势。针对不同操作系统提供具体命令,并给出常见问题解决方案,即使是新手也能快速搭建专属本地AI助手。最终实现的方案无需联网、无使用成本,且能保障数据隐私安全。

2501_93651177的博客 7231

【Ybt OJ】[数据结构 第4章] 线段树 [后半章]

「「「数据结构」」」第444章 线段树(((后222题))) 目录: D.维护序列 E.字符串排序 大家好 我是个菜鸡 我非常喜欢暴力数据结构 于是我用线段树过了这些题( D.D.D. 例题444 维护序列 洛谷link1link1link1 洛谷link2link2link2 分析: 和例题222差不多 就是加了个乘操作 但要注意 维护lazylazylazy标记 和下传时 先乘再加 因为 如果维护的是aaa lazylazylazy标记有+c+c+c和×b\times b×b 但是 a×b+c≠(

绫 181

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

SAP ABAP 四种传统的数据库视图类型介绍之二:Projection View

一是该 projection view 只暴露了底层 TADIR 表的四个字段,因此通过该 view 维护数据,在维护界面我们只能维护一条记录的四个字段,如下图所示。使用 Projection view 的优点在于其设计灵活性:如果系统中原始的数据库表字段较多,通过投影仅保留关键信息可有效降低从数据库层到应用层之间的数据传输负担,且保持数据的一致性。其二是笔者之前的文章提到,TADIR 是 ABAP 系统重要的对象注册表,如同 window 操作系统的注册表一样,一般的应用开发人员不应该去修改其内容。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1441

【YBTOJ】维护序列

参考线段树2 codecodecode #include<iostream> #include<cstdio> using namespace std; long long n , P, m; struct node { long long l, r, w, flag1, flag2; }a[4001000]; void build(long long k, long long l, long long r) { a[k].l=l, a[k].r=r; a[k].fla.

ha 168

【Matlab算法】MATLAB实现的语音信号降噪算法(附MATLAB完整代码)

语音信号降噪是语音处理领域中的一个关键问题。在实际应用中,语音信号常常被各种环境噪声污染,这不仅影响了语音的质量,还可能导致后续处理(如语音识别)的性能下降。因此,开发有效的降噪算法对于提高语音通信质量、改善语音识别系统性能等具有重要意义。 本文将介绍并实现两种经典的语音信号降噪算法:谱减法和维纳滤波。这两种方法都是基于频域处理的技术,具有实现简单、计算效率高的特点。通过MATLAB实现这些算法,我们可以直观地比较它们的性能和降噪效果。

Albert_Lsk的博客 1329

【ybt高效进阶4-4-4】【luogu P2023】维护序列

给你一个序列,要你维护三个操作。 把一个区间的数乘一个值或加一个值,还有区间求和。

欢迎您的光顾awa 179

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【YBT2023寒假Day7 C】查区间(线段树套线段树)

给你一个序列,要你维护两种操作,区间取 min 和区间求第 k 小。

欢迎您的光顾awa 501

计算机控制技术及应用

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

【YBT2023寒假Day7 A】出题人(线段树优化DP)

有一个序列,你要把它分成若干份,每一份的值的和不超过 m,而且每一段最大值的和最小。 输出每段最大值和的最小值。

欢迎您的光顾awa 241

android 蓝牙通讯demo

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

《信息学奥赛一本通 提高篇》 第四部分 数据结构 第3章 线段树

线段树从零开始 线段树从零开始_岩之痕-优快云博客_线段树从0开始 线段树入门 http://blog.jobbole.com/105886/ 线段树 线段树_百度百科 手把手教你写线段树 手把手教你写线段树_单精度的梦-优快云博客_线段树怎么写 一步一步理解线段树 一步一步理解线段树 - tenos - 博客园 线段树(由浅入深),详解!! 线段树(由浅入深),详解!!_EQSAN的博客-优快云博客 线段树详解 超全的线段树 - 比特飞流 - 博客园

青少年趣味编程 963

【ybt高效进阶4-4-2】区间查改

给你一个序列,要你支持区间加值和区间求和两个操作。

欢迎您的光顾awa 171

【ybt高效进阶4-4-3】【luogu P4513】公园遛狗 / 小白逛公园

给你一个序列,要维护两个操作。 单点修改和在一个区间中找权值最大的子区间的权值。

欢迎您的光顾awa 194

【ybt高效进阶4-4-1】求区间和

求区间和【ybt高效进阶4-4-1】 题目大意: 让你维护一个数组(序列),让你支持单点修改,区间查询的操作。 思路: 本题最舒服的解法是树状数组,但此处我们当成线段树的板子。 直接上模板线段树。 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<stack> #include&lt

天空之心 173

信息学奥赛一本通 1550:花神游历各国 | 洛谷 P4145 上帝造题的七分钟 2 / 花神游历各国

‌《花神游历各国》解题大纲‌ ‌题目分析‌ 题目链接与背景介绍(YBT 1550与洛谷P4145)。 核心操作:区间开平方(向下取整),区间求和。 ‌关键观察‌ 数值特性:任何数最多6次开平方后变为1,后续操作无效。 优化思路:通过维护区间最大值,跳过全1区间的无效修改。 ‌算法设计‌ ‌线段树结构‌:存储区间和与最大值。 ‌修改策略‌:递归修改时,若区间最大值≤1则剪枝;否则继续分解到单点更新。 ‌复杂度分析‌ 单点修改最多6次,总复杂度为O(n log n),适用于1e5数据规模。

君义NOIP的博客 1212

【ybt金牌导航4-1-2】【luogu P2713】合并游戏 / 罗马游戏

有一个序列,一开始各自在各自的集合中。 你要支持两个操作,把两个数所在的集合合并,求出一个数所在集合中最小的数并把它删除。 如果询问的数已经被删除,那就直接跳过。(求最小数就还要输出 0)

欢迎您的光顾awa 242

【ybt2021.11.12】T2 字典之序

T2 字典之序 link 解题思路 考虑贪心。 在选每个字母的时候要保证它的后面有所有没有出现过的字母。 每次从后往前找到直到每个未出现过字母都存在,记录下标。 在上一次操作的下标后一位到找到的下标之间取最小的字母。 可以保证这样找到的字符串字典序最小。 code #include<iostream> #include<cstring> #include<cstdio> #include<string> using namespace std; stri

你...你不要过来啊!!! 780

【ybt】【树形DP】【例题2】结点覆盖

结点覆盖 LinkLinkLink 解题思路 这是一道树形DP。 设 fi,0f_{i,0}fi,0​ 表示以 iii 为根的子树全部被覆盖,iii 的父亲被选的最小值。 fi,1f_{i,1}fi,1​ 表示 iii 被选的最小值。 fi,2f_{i,2}fi,2​ 表示 iii 的儿子被选在最小值。 code #include<iostream> #include<cstdio> using namespace std; int n; int a[2010]; int f[

你...你不要过来啊!!! 543

【ybt】【数据结构 RMQ 课过 例3】与众不同

与众不同 题目链接:YbtOJ 解题思路 设 lastilast_ilasti​ 表示 iii 上一次出现的位置。 设 preipre_iprei​ 表示以 iii 结尾的最长完美序列的启示位置,显然 prei=max⁡(prei−1,lastai)pre_i=\max(pre_{i-1},last_{a_i})prei​=max(prei−1​,lastai​​) 。 我们先处理出 lastlastlast 和 preprepre ,然后二分出一个 lenlenlen,lenlenlen 的左边可以直

你...你不要过来啊!!! 517

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

你...你不要过来啊!!! 461
上一篇: 【ybt】【数据结构 线段树 课过 例3】小白逛公园
下一篇: 【ybt】【数据结构 倍增 课过 例1】查找编号
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值