【LOJ3059】「HNOI2019」序列

本文介绍了LOJ3059题目,重点讨论了如何解决保序回归问题。文章提到,当所有Bi相等时,最小化序列差平方和的B值是Ai的平均数。最优解是将序列分为最少段,每段Bi取Ai的平均数,保持B数组有序。通过单调栈可以有效维护段的平均数。对于修改操作,可以采用离线处理,使用两次单调栈合并区间。时间复杂度为O(N+MLog2N)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【题目链接】

【思路要点】

  • 没有修改的做法在《IOI2018中国国家候选队论文集——浅谈保序回归问题》中有所介绍。
  • 具体做法如下:
    ( 1 ) (1) (1) 、注意到若所有 B i B_i Bi 均相等,最小化 ∑ i = 1 N ( A i − B ) 2 = ∑ i = 1 N A i 2 − 2 A i B + B 2 \sum_{i=1}^{N}(A_i-B)^2=\sum_{i=1}^{N}A_i^2-2A_iB+B^2 i=1N(AiB)2=i=1NAi22AiB+B2 B B B 应当满足 B = ∑ i = 1 N A i N B=\frac{\sum_{i=1}^{N}A_i}{N} B=Ni=1NAi ,即集合内所有 A i A_i Ai 的平均数。
    ( 2 ) (2) (2) 、最优解的形式一定为分成最少的若干段,每一段的 B i B_i Bi 即取其中 A i A_i Ai 的平均数,同时保证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值