一维差分(例acwing重新排序)

为什么PCB设计中的50Ω阻抗如此重要?从USB到以太网的实战解析 本文深入解析了PCB设计中50Ω特征阻抗的核心重要性及其工程权衡起源。文章从传输线理论出发,阐释了阻抗匹配对防止信号反射、确保信号完整性的关键作用,并对比了USB、以太网等不同应用场景的阻抗标准。同时,文章结合实际案例,剖析了在两层板等简单设计中实现精准阻抗控制的难点与实战解决方案。 阅读详情

一维差分是为了解决访问一个数组中的几个区间,降低时间复杂度使用的

  1. 差分就是前缀和的逆运算(a[i]=b[1]+b[2]+…b[i])

  1. 差分的作用就是快速实现将数组部分加上一个数。

例如

给定一个数组 A 和一些查询 Li,Ri,求数组中第 Li 至第 Ri 个元素之和。
小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。
小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
输入格式
输入第一行包含一个整数 n。
第二行包含 n 个整数 A1,A2,⋅⋅⋅,An,相邻两个整数之间用一个空格分隔。
第三行包含一个整数 m 表示查询的数目。
接下来 m 行,每行包含两个整数 Li、Ri,相邻两个整数之间用一个空格分隔。
输出格式
输出一行包含一个整数表示答案。
数据范围
对于 30% 的评测用例,n,m≤50;
对于 50% 的评测用例,n,m≤500;
对于 70% 的评测用例,n,m≤5000;
对于所有评测用例,1≤n,m≤105,1≤Ai≤106,1≤Li≤Ri≤n。
输入样例:
5
12345
2
13
25
输出样例:
4
样例解释
原来的和为 6+14=20,重新排列为 (1,4,5,2,3) 后和为 10+14=24,增加了 4.

先分享一下这道题的做题思路:

第一步:要想求出重新排序之后的和尽量最大,就应该使得有交集的部分和最大

例如12345 区间是1-3 和2-5 ,区间2-3要加两次,其余的加一次,要想使和最大2-3区间和应该先最大,所有一开始想求他们两个之间的交集,后来发现根本没有思路求交集,转过来想到,求同一个位置被m次区间访问的次数,就是它们相交的次数。设立一个访问数组cnt[N],例如一开始区间1-3,

cnt[5]={1,1,1,0,0};之后2-5访问后cnt[5]={1,2,2,1,1}。这就是经历过两次查询后,数组中的元素在所有访问区间 中出现的次数。

这是一开始想到的统计cnt数组元素的方法,但是会超时,因为算法复杂度是o(m*区间长度)

后面想到了y总的一维差分方法,直接用模板

第一次询问区间1 -3

我们想得到的目标数组是 a{1,1,1,0,0,}但是时间复杂度太高了

我们用人为构造差分数组,目标数组a[i] =cnt[i]-cnt[i-1];

1 0 0 -1 0

等价于cnt[i]++;

cnt[j]--;

之后在通过差分数组可以还原得到目标数组a[5],

b[i] = cnt[i]+b[i - 1];

b[1]=cnt[1]+b[0]=1

b[2]=cnt[2]+b[1]=1

b[3]=cnt[3]+b[2]=1

b[4]=cnt[4]+b[3]=0

b[5]=cnt[5]+b[4]=1

代码如下:

第二步:求出来每个位置被访问的次数后,我想要把最大的数想要放在对应的b数组中,即访问次数最多的位置

例如原数组1 2 3 4 5

访问区间 1-3 和2-5

b数组 1 2 2 1 1,想要让最大的数4和5 去到第二个第三个位置这样求出来的和最大

也就是cnt值最大的对应原数组最大的数,这样求出来的和才最大

因此把两个数组排序

1 2 3 4 5

1 1 1 2 2

这样对应乘积累加才最大

最后别忘了相减,因为求的是增加了的值。

全部代码:

截图:

YOLOv8改进:注意力系列篇 |高效的通道先验卷积注意力(CPCA) | 中科院 2023.6 高效的通道先验卷积注意力(CPCA)方法,支持注意力权重在通道和空间维度上的动态分布; 阅读详情

相关推荐

BACnet/IP BBMD跨网段通信深度解析与最佳实践

本文介绍了在BACnet/IP网络中通过BBMD实现跨子网设备通信的关键配置方法。重点阐述了广播分发表(BDT)中掩码设置的重要性:使用子网掩码(255.255.255.0)会导致路由器拦截广播消息,而必须采用主机掩码(255.255.255.255)才能启用单播隧道机制,使BACnet广播消息封装为可路由的单播UDP包。文章详细说明了BDT条目的正确配置格式、BIP广播地址的作用,并提供了验证步骤,强调在跨网段场景中,正确设置掩码是确保设备发现和通信成功的关键因素。

零一架构师的专栏 1536

【算法学习】:排序、二分、前缀和、差分

acwing

m0_61960885的博客 282

vTaskStartScheduler()详解

是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。

Shylock_Mister的博客 1595

第二节 排序算法与差分思想

排序算法与差分思想

m0_69306938的博客 203

从萤石云到GB28181:海康4G摄像机接入第三方平台的曲折之路

本文深入探讨了海康4G摄像机接入第三方平台时遇到的协议冲突问题,特别是GB28181与萤石云服务的互斥性。通过技术分析揭示了4G模块的定向流量限制和协议栈资源竞争等核心问题,并提供了有线接入测试和萤石云API二次开发等解决方案。最后总结了设备选型的关键参数和协议兼容性检查清单,为安防监控系统集成提供实用指导。

mango的博客 996

芯片设计新手必看:5分钟搞懂工艺角(Process Corner)到底是什么,为啥仿真总要用它?

本文详细解析了芯片设计中的工艺角(Process Corner)概念及其在仿真中的重要性。通过类比马拉松运动员的性能差异,解释了晶体管制造过程中的天然波动,并介绍了TT/FF/SS等工艺角代码的含义。文章还探讨了为何需要跑全工艺角仿真,以及现代芯片验证的完整流程,包括PVT矩阵和多模式分析(MMMC),帮助芯片设计新手快速掌握这一关键概念。

weixin_28713947的博客 246

【算法】差分、前缀和(重新排序)

给定一个数组 A和一些查询 Li,Ri,求数组中第 Li 至第 Ri个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?

weixin_74154742的博客 717

解密 vn.py 源码:从事件驱动到模块化设计的实战解析

本文深入解析vn.py源码,重点剖析其事件驱动机制与模块化设计。通过事件引擎、处理器字典等核心组件分析,展示如何实现低耦合高内聚的交易系统架构,并结合实战案例说明模块化设计带来的开发效率提升。文章还详细解读了Gateway抽象层、核心数据结构及设计模式应用,为量化交易开发者提供源码级实践指南。

weixin_27427619的博客 250

每日一题——重新排序(差分)

每日一题——重新排序,需要用到的基础算法:差分

z_17623379434的博客 1098

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2874

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1623

蓝桥杯-重新排序

蓝桥杯 差分 前缀和

m0_62404686的博客 1156

微博scheme

微博scheme

qq_42278595的博客 320

重新排序acwing

4655. 重新排序给定一个数组 A𝐴 和一些查询 Li,Ri𝐿𝑖,𝑅𝑖,求数组中第 Li𝐿𝑖 至第 Ri𝑅𝑖 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?

2301_80619588的博客 441

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Acwing 4655. 重新排序

思路:先读取区间,计算每个位置被统计的次数,让被统计次数多的位置填上尽可能大的数。重排后的和,即可将数组排序、统计次数排序 相乘求和可得。因此直接计算重排前的和,可以通过前缀和差分快速求得。

m0_67286481的博客 224

android 蓝牙通讯demo

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

Acwing 4655.重新排序 差分 权重

差分

SpaceTravellers的博客 367

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

AcWing 4655. 重新排序(差分,排序,贪心)

原来的和为 6+14=20,重新排列为 (1,4,5,2,3) 后和为 10+14=24,增加了 4。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。放到相应的位置,而是直接可以对两个数组进行同样的递增或递减顺序排序,排序之后,最大的。很容易想到能够用差分的方法来求出所有操作覆盖到每个点的次数,如果使用。放到覆盖次数更多的点上就可以得到最大的结果,这一步不要想怎么去把。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?,相邻两个整数之间用一个空格分隔。

2302_79440616的博客 590

【Acwing寒假2023每日一题】4655. 重新排序 - 差分 + 排序不等式

差分+排序不等式

weixin_61639349的博客 666

重新排序(蓝桥杯,acwing,差分)

蓝桥杯,acwing,数据结构

2302_76987120的博客 661

AcWing4655.重新排序

【题目链接】

w2259318982的博客 474

acwing4655.重新排序

看了讲解,有不懂的可以上acwing基础算法课上学习差分,当Ai数组为正序,且从Ci数组也为正序的时候,ai*ci的和最大(ci数组为下标i对应ai数组需要加的次数)原来的和为 6+14=20,重新排列为 (1,4,5,2,3) 后和为 10+14=24,增加了 4。首先想到暴力解决,对于数组进行全排列,求出各个区间的和并且每次比较,取和的最大值;对于所有评测用例,1≤n,m≤10^5,1≤Ai≤10^6,1≤Li≤Ri≤n。接下来 m 行,每行包含两个整数 Li、Ri,相邻两个整数之间用一个空格分隔。

xbb0521l的博客 173

【AcWing每日一题】4655. 重新排序

小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。给定一个数组 A 和一些查询 Li,Ri,求数组中第 Li 至第 Ri 个元素之和。第二行包含 n 个整数 A1,A2,⋅⋅⋅,An,相邻两个整数之间用一个空格分隔。接下来 m 行,每行包含两个整数 Li、Ri,相邻两个整数之间用一个空格分隔。对于 70% 的评测用例,n,m≤5000;对于 50% 的评测用例,n,m≤500;对于 30% 的评测用例,n,m≤50;对于所有评测用例,1≤n,m≤10。

z135733的博客 500

AcWing 4655. 重新排序(差分+前缀和+贪心)

AcWing 4655. 重新排序(差分+前缀和+贪心)

Turing_Sheep的博客 372

【寒假每日一题】AcWing 4655. 重新排序(补)

4)题目要求和最大,利用排序不等式可知,两数组“顺序”相乘和最大,所以对两数组进行,相同的排序操作,然后再求每项相乘再求和的结果,即为所求和最大,记为sum。差分数组第一个元素与原数组第一个元素相同,对于之后每一个元素都有第i个元素等于原数组第i个元素值-原数组第i-1个元素的值,大小与需要处理的数组大小一致。3)对原数组和2)中求得的数组,每项相乘再求和,即可得到m次询问中,原数组的所询问区间中的数的和sum0。对于所有评测用例,1≤n,m≤10^5,1≤Ai≤10^6,1≤Li≤Ri≤n。

你的博客 766

AcWing - 寒假每日一题2023(DAY 6——DAY 10)

AcWing 4645. 选数异或,AcWing 4644. 求和,AcWing 4653. 数位排序,AcWing 4655. 重新排序,AcWing 4652. 纸张尺寸

每天进步一点点! 1554

AcWing 4655. 重新排序 寒假每日一题

AcWing 4655. 重新排序 寒假每日一题(23/1/16)

m0_73590902的博客 245
上一篇: leedcode704搜索二维矩阵(二分查找法求解)
下一篇: acwing差分
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值