050.等差数列差分

news/2026/1/18 11:33:38/文章来源:https://www.cnblogs.com/ssbt/p/19497908

等差数列

  • 首项 s
  • 末项 e
  • 共差 d

等差数列差分

在区间[l,r]上加上一个等差数列

知道了区间长度,根据 e - s = d * (r - l)

对于s,e,d我们可以知二求三

对于原始数组a[]={0,0,0,0,0,0,0}

[1,4]加上一个等差数列s=5,d=2,e=11

我们希望得到{0,5,7,9,11,0,0}

对结果求一次差分逆过程a[i]-=a[i-1]

得到{0,5,2,2,2,-11,0}

再求一次差分逆过程a[i]-=a[i-1]

得到{0,5,-3,0,0,-13,11}

我们发现中间的若干项都变成0了,我们只需要修改4个位置

0,0,0 , s , d-s , 0,0,0,0,0,0,0,0,0 , -d-e , e , 0,0,0,0

最后进行两次累加更新即可

void change(int l,int r,int s,int d,int e){d[l]+=s;d[l+1]+=d-s;d[r+1]+=-d-e;d[r+2]+=e;
}
void update(int n){for(int _=0;_<2;_++){for(int i=1;i<=n;++i){a[i]+=a[i-1];}}
}

习题

luogu P4231

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int N=1e7+5;
ll a[N]={0};
void change(int l,int r,ll s,ll d,ll e){a[l]+=s;a[l+1]+=d-s;a[r+1]+=-d-e;a[r+2]+=e;
}
void update(int n){for(int k=0;k<2;++k){for(int i=1;i<n;++i){a[i]+=a[i-1];}}
}
void solve(){int n,m,l,r;ll s,e,d;cin>>n>>m;while(m--){cin>>l>>r>>s>>e;d=(e-s)/(r-l);change(l-1,r-1,s,d,e);}update(n);ll ans1=0,ans2=-1;for(int i=0;i<n;++i){ans1^=a[i];if(a[i]>ans2)ans2=a[i];}cout<<ans1<<' '<<ans2;
}
int main(void){cin.tie(0)->sync_with_stdio(0);int T=1;//cin>>T;while(T--)solve();
}

luogu P5026

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int N=2e6+5;
const int offset=300005;
//为了保证差分的正确性,超出边界的位置也要处理,整体添加一个偏移量
ll a[N];
int n,m,v,x;
void change(int l,int r,int s,int d,int e){a[l]+=s;a[l+1]+=d-s;a[r+1]+=-d-e;a[r+2]+=e;
}
void update(int n){for(int _=0;_<2;++_){for(int i=1;i<=n+offset;++i){a[i]+=a[i-1];}}
}
void solve(){cin>>m>>n;while(m--){cin>>v>>x;x+=offset;change(x-3*v+1,x-2*v,1,1,v);change(x-2*v+1,x,v-1,-1,-v);change(x+1,x+2*v,1-v,1,v);change(x+2*v+1,x+3*v-1,v-1,-1,1);}update(n);for(int i=1;i<=n;++i){cout<<a[i+offset]<<' ';}
}
int main(void){cin.tie(0)->sync_with_stdio(0);int T=1;//cin>>T;while(T--)solve();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1177979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毕业论文AI检测不过关?学长亲历的通关攻略

毕业论文AI检测不过关&#xff1f;学长亲历的通关攻略 TL;DR&#xff1a;作为刚毕业的学长&#xff0c;我的论文也被AI检测卡过。从一开始的手忙脚乱到最后顺利通过&#xff0c;总结出一套完整的通关攻略&#xff1a;提前自测留足时间、找准问题段落精准修改、善用专业工具提效…

2026年热门扩香机品牌盘点:这些品牌值得一试,香薰精油/天然植物精油香氛/扩香器/瑜伽香氛,扩香机ODM代工厂推荐榜单 - 品牌推荐师

随着消费升级与空间美学需求的攀升,扩香机已从单一功能设备进化为场景化嗅觉体验的核心载体。据行业数据显示,2025年全球扩香机市场规模突破85亿美元,年复合增长率达12%,其中智能物联、定制化香型与全场景适配成为…

探讨售后完善的GEO推广专业公司,西安信之上怎么收费? - 工业品牌热点

当下越来越多企业意识到,AI搜索已成为精准获客的核心渠道,但面对如何选有实力的GEO推广企业求推荐GEO推广公司售后完善的GEO推广专业公司等问题时,却常陷入选择困境。本文结合企业实际需求,围绕这三个高频关键词展…

导师推荐!专科生必用TOP9 AI论文网站测评

导师推荐&#xff01;专科生必用TOP9 AI论文网站测评 2026年专科生必备的AI论文工具测评 随着人工智能技术在学术领域的广泛应用&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率与质量。然而&#xff0c;面对市场上琳琅满目的AI论文网站&#xff0c;如何选择真正适…

8.1 医疗影像AI:UNet与TransUNet模型实战

8.1 医疗影像AI:UNet与TransUNet模型实战 在医疗人工智能领域,医学影像分析是一个核心应用方向。从X光片、CT扫描到MRI图像,医疗影像数据蕴含着丰富的诊断信息。然而,如何有效地从这些复杂的图像中提取出有价值的医学信息,一直是研究的热点问题。本章将深入探讨医疗影像分…

Java中public class与class

你想弄清楚Java中public class和class(默认访问权限)的核心区别,这是Java类定义的基础知识点,我会用通俗易懂的语言+代码示例,帮你把两者的差异、使用规则和适用场景讲透。 一、核心区别总览 先通过表格直观对比核…

8.2 病灶检测与分割:精准识别医学影像异常区域

8.2 病灶检测与分割:精准识别医学影像异常区域 在上一章中,我们学习了UNet和TransUNet等医学图像分割的基础模型。本章将深入探讨病灶检测与分割这一关键任务,这是医学影像分析中的核心应用之一。病灶检测与分割的目标是从医学影像中准确识别出异常区域(如肿瘤、病变等),…

5.3 表格识别与版面分析:搞定复杂文档结构解析

5.3 表格识别与版面分析:搞定复杂文档结构解析 引言 在前两节中,我们学习了OCR技术的发展历程和主流的多模态OCR架构。在实际应用中,许多文档具有复杂的结构,特别是表格和版面布局,这对OCR系统提出了更高的要求。表格识别和版面分析是文档理解中的关键任务,它们能够帮助…

ACPI!ACPIBuildCompleteCommon函数的作用是设置buildRequest->WorkDone为buildRequest->NextWorkDone以节点CP01为例子说明

ACPI!ACPIBuildCompleteCommon函数的作用是设置buildRequest->WorkDone为buildRequest->NextWorkDone1: kd> gu Breakpoint 5 hit eaxf7420746 ebx00000000 ecx89d37c08 edx00000000 esi89d37c0c edif743b318 eipf74133c3 espf791ad6c ebpf791adac iopl0 nv u…

Lesson12

Lesson 85-86 1、单词 漂亮beautiful nicesmartlovelygood-looking:男女均可以gorgeous just表示"刚刚"时只能用于现在完成时    Have you just been...just now在一般过去时中表达"刚刚"  …

【2026亲测】一键彻底禁止Windows 10/11自动更新,让电脑暂停更新100年!

你是否厌倦了Windows系统在工作或游戏时突然弹出的“正在更新”提示&#xff1f;虽然微软推送更新是为了安全&#xff0c;但在实际体验中&#xff0c;频繁的强制重启、更新后的驱动不兼容、甚至突如其来的“蓝屏死机”&#xff0c;让无数用户头疼不已。 更让人无奈的是&#xf…

5.4 OCR+翻译一体化:中英文混排文档的智能处理

5.4 OCR+翻译一体化:中英文混排文档的智能处理 引言 在前三节中,我们学习了OCR技术的发展历程、多模态OCR架构以及表格识别和版面分析技术。在实际应用中,许多文档包含多种语言的混合排版,特别是在国际化的商业和学术环境中,中英文混排文档非常常见。如何高效地处理这类…

6.2 视觉定位Grounding:让AI指出图像中的具体物体

6.2 视觉定位Grounding:让AI指出图像中的具体物体 引言 在上一节中,我们学习了视觉问答(VQA)技术,它让AI能够理解图像内容并回答相关问题。然而,在许多实际应用中,我们不仅需要AI理解图像中的内容,还需要它能够精确定位图像中的具体物体或区域。这就是视觉定位(Visu…

36排刀机怎么选?2025年附近重切削机型排行解析,动力刀塔/36排刀机/4+4车铣/尾顶机/双主轴/Y轴/正交Y排刀机定制有哪些 - 品牌推荐师

在精密制造领域,排刀机以其结构紧凑、换刀速度快、刚性强等优势,成为中小型、多工序复杂零件批量生产的利器。随着新能源汽车、高端装备、精密医疗器械等行业的迅猛发展,对零件加工效率与精度的要求日益严苛,尤其是…

6.3 DETR与GLIP:新一代目标检测技术详解

6.3 DETR与GLIP:新一代目标检测技术详解 引言 在前两节中,我们学习了视觉问答(VQA)和视觉定位(Grounding)技术,这些技术都依赖于准确的目标检测作为基础。传统的目标检测方法如Faster R-CNN、YOLO等虽然性能优秀,但存在一些固有的局限性,如需要复杂的后处理步骤(如…

2026年江苏省考面试培训企业推荐,中政公考靠谱之选 - 工业品牌热点

在江苏省考面试的备考赛道上,选择一家靠谱的培训机构,就像为冲刺阶段配备了精准的导航与强劲的引擎,直接关系到能否在千军万马中突出重围。面对市场上鱼龙混杂的机构,如何找到真正能提升面试能力、助力上岸的良师益…

2025年AI超级员工企业用户口碑排行,AI员工/AI超级员工/AI企业员工/AI智能员工供应商口碑推荐榜 - 品牌推荐师

行业洞察:AI超级员工市场迎来爆发式增长 随着人工智能技术的快速发展,AI超级员工正成为企业数字化转型的重要推动力。据行业数据显示,2024年全球AI超级员工市场规模已突破千亿元,预计到2025年将保持30%以上的年均增…

如何在Java中实现线程间的通信?

一、线程间通信的核心场景最典型的场景是生产者 - 消费者模型&#xff1a;生产者线程&#xff1a;生产数据&#xff08;往共享容器里放数据&#xff09;消费者线程&#xff1a;消费数据&#xff08;从共享容器里取数据&#xff09;通信需求&#xff1a;容器满时生产者等待&…

AI 写论文哪个软件最好?实测封神!虎贲等考 AI 凭硬核实力领跑全场

毕业季的论文战场硝烟四起&#xff0c;“AI 写论文哪个软件最好” 的灵魂拷问&#xff0c;成了无数学生的每日必问。有人踩坑 “虚构文献生成器”&#xff0c;查重率居高不下&#xff1b;有人被 “AI 痕迹检测” 难住&#xff0c;辛苦写的论文被判违规&#xff1b;还有人在多个…

Conda 常用命令整理

环境管理 管理独立的 Python 运行环境,解决项目间依赖冲突。创建环境 # 创建名为 myenv 的新环境 conda create -n myenv# 创建并指定 Python 版本 conda create -n myenv python=3.9激活/切换环境 # 进入 myenv 环境…