当前位置: 首页 > news >正文

[NOIP2021] 方差 题解

link

剧透

方差计算式:\(n \sum a_i - (\sum a_i)^2\)

剧透

方差是 \(\min_d \{\sum_i (a_i-d)^2\}\),可以随意选择 \(d\)

剧透

不妨多尝试几种转移顺序。

剧透

尝试加强你的性质,比如,证明差分序列严格单谷是最优的。

题意:给定数列 \(a\),每次可以令 \(a_i \larr a_{i-1}+a_{i+1}-a_i\),要求经过若干次操作后 \(a\) 数列方差的最小值。

观察性质

首先,这个操作是交换相邻两项的差分。

然后感性理解一下,为了让数靠近平均值,差分序列一定大致是单谷的。

严谨证明:

记序列 \(a\) 的平均值为 \(d\),记 \(a_p \leq d \leq a_{p+1}\)

对于所有 \(a_i(i > p)\),如果差分不是单调的,我们可以邻项交换,使得 \(\sum_{i} (a'_i - d)^2 \leq \sum_{i} (a_i - d)^2\),而前者大于等于新的方差。

对于 \(a_i(i \leq p)\) 同理。

对于恰好跨过 \(d\) 的那个差分(即 \(a_{p+1} - a_p\)),可以证明,这个差分可以与其中一边交换,使得新的方差变小。

因此差分序列是严格的单谷。

我们可以设计 \(dp\),目前有两个方向:从中间往两边插入,或者从两边往中间插入。

从中间往两边

考虑最终的答案为 \(n \sum a_i^2 - (\sum a_i)^2\),我们需要记录 \(\sum a_i\)\(\sum a_i^2\)

对差分序列 \(b\) 从小往大开始插入,每次插到头尾。

发现无论把 \(b_k\) 插入到开头和结尾,都可以根据已知的 \(x = \sum a_i\)\(y = \sum a_i^2\) 推理出新的值。

因此我们可以直接设计 \(f_{i,s}\) 表示考虑到第 \(i\) 个差分,且 \(\sum a_i = s\) 时,\(\sum a_i^2\) 的最小值。

转移复杂度 \(O(1)\),状态数是 \(O(n^2a)\),总复杂度 \(O(n^2a)\)

从两边往中间

这里使用 \(n \sum a_i^2 - (\sum a_i)^2\) 就不太好使了,因为还需要多记录下前面数的和,多了一个 \(a\)。(当然也可以优化成上面的做法)

考虑方差的式子:\(\min_d \{\sum_i (a_i-d)^2\}\)

枚举这个 \(d\) 的位置,每次跑一遍 dp,可以做到 \(O(n^2a^2)\)

考虑到既枚举 \(d\)、又记录下来前缀和很浪费,尝试把 \(d\) 记录进状态里。

由于我们只关心 \(a_i-d\),也就是当前数和 \(d\) 的相对位置,可以直接记录当前剩余没有放数的区间,和 \(d\) 的相对位置。

同样可以做到 \(O(n^2a)\)

小优化

\(O(n^2a)\) 不能通过本题,但是已经很接近了。考虑怎么乱搞一下。

发现差分数组非 \(0\) 的值只有 \(\min(n,a)\) 项,而 \(0\) 对转移没什么影响。

所以只需要对所有非 \(0\) 项做转移即可。

复杂度 \(O(\min(n,a)na)\)

http://www.zskr.cn/news/1435654.html

相关文章:

  • DIY磁力旋转开关:用Arduino单线读取五档状态
  • 标题:深圳全屋定制工厂直销价格表 - 产品测评官
  • 从零打造高性价比人形机器人:基于ESP32与3D打印的16自由度桌面伙伴
  • 【Gemini危机公关黄金72小时】:20年技术传播专家亲授AI产品舆情失控的5步逆转法
  • 【企业级舆情防御红线】:Gemini系统未启用这6项策略的团队,87%在危机爆发后72小时内失守
  • 全平台资源一键获取:告别网络限制的高效下载神器
  • 2026合肥工装装修公司怎么选?合创精工装饰、合肥精艺装饰、新公装建筑装饰三大靠谱品牌深度解读 - 资讯纵览
  • 原型设计工具分析与校园二手交易平台原型设计作业
  • Signature Pad:现代Web应用中实现专业级电子签名的终极解决方案
  • 基于Arduino与超声波传感器的迷你雷达系统:从原理到实现
  • D2DX宽屏补丁:让经典暗黑破坏神2在现代PC上焕发新生的终极解决方案
  • RevokeMsgPatcher终极指南:3步快速实现微信QQ防撤回功能
  • 如何彻底解决网盘下载限速问题:九大平台直链下载终极指南
  • Arduino蓝牙控制LED:从硬件连接到手机App的物联网入门实践
  • 电路设计实战:从原理图到PCB,手把手教你制作光控LED夜灯
  • 微信QQ防撤回补丁:解密Windows平台消息保护终极方案
  • 基于Arduino的头部控制游戏手柄:低成本辅助技术实践
  • 旧电脑变复古街机:Core 2 Duo硬件回收与Batocera系统实战
  • 基于Arduino与NeoPixel的音乐VU表制作:从硬件连接到代码实现
  • 告别模糊卡顿:3步AI超分辨率技术让老旧图像视频重获新生
  • 基于Arduino与Visuino的SGP30空气质量监测系统设计与实现
  • GPX Studio终极指南:免费在线GPX编辑器全功能解析
  • 项目介绍 MATLAB实现基于层次分析法(AHP)进行煤矿顶板风险预警预测(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
  • 打响无人零售反高价第一枪!这台无人便利柜真的把价格打下来了 - 资讯纵览
  • 恒威车灯|17年工厂直供LED激光像素大灯升级 - 奔跑123
  • novel-downloader深度实战:一站式小说采集与离线阅读解决方案
  • 燃气节能炉是什么?一文读懂核心功能与优势(2026最新版)——东莞百丰燃气节能炉厂家全解析 - 品牌优选官
  • 终极AMD显卡驱动精简指南:如何让你的系统性能提升75%
  • 3步掌握Windows消息保护神器:彻底告别撤回困扰
  • 华靓甄选合伙人周总,用“笨功夫”把生意做到了家门口 - 资讯纵览