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

9.8

ANIG

对于序列 \(\{a_n\}\),每次随机选择 \(i\)\(a_i\gets a_i+1\),求 \(a\) 前缀和数组的积的期望。

转化一下,先对 \(a\) 做一下前缀和,假设最后第 \(i\) 个位置变成了 \(a_i+b_i\),答案即为 \(\prod (a_i+b_i)\),这里考虑一个组合意义,将 \(b_i\) 看成和覆盖它的一个操作匹配,这样设 \(f_{n,m}\) 为 dp 到第 \(n\) 个数,前面所有数匹配的操作的集合大小为 \(m\) 的方案,那么对于 \(n\),要么选择 \(a_i\),要么匹配前面点匹配过的一个操作,要么匹配一个前面没有匹配的操作,\(O(n^2)\) 转移即可。

对于序列 \(\{a_n\}\),每次带权随机以 \(\frac{b_i}{\sum\limits_j b_j}\) 的概率将 \([i,i+m-1]\)\(a_i\) 加一,求 \(a\) 积的期望。

沿用上述组合意义转化,考虑一个点集 \(S\) 全都匹配到操作 \(x\),那么其贡献只和 \(S\) 的最左边和最右边的点有关,于是设 \(f_{n,m,S}\) 表示 dp 到第 \(n\) 个数,匹配集合的大小为 \(m\),前面 \([n-m,n]\) 的点是否被钦定为左端点并且还没有决定右端点的状态为 \(S\),dp 转移也是容易的。复杂度 \(O(n^2m2^m)\)

这个对 \(m>n/3\) 有另一种将序列划分为三块同时 dp,可以 \(O(n^6)\)

NineSuns

当决策单调性 dp 需要莫队计算 \(w(l,r)\),且 \(f_i\)\(f_j(j<i)\) 转移时的 \(O(n\log n)\) 做法。

\(p_i\) 表示 \(i\) 的最优决策点。

考虑分治,当分治到区间 \([l,r]\) 时,要求 \([0,l]\)\(f,p\) 都计算正确,计算结束后 \([l,r]\)\(p,f\) 都正确。

\(r\) 在只考虑 \([0,l]\) 的转移时 \(f,p\) 正确,由于决策单调性,故在只考虑 \([0,l]\)\(p_l\le p_{mid}\le p_r\),求出 \(p_mid\),然后递归到 \([l,mid]\),然后用 \([l+1,mid]\) 的值更新 \(r\),递归到 \([mid,r]\)

不难验证上述分治过程满足条件。在处理 \([p,p+1]\) 直接返回即可。

对于每一层,指针移动量是 \(O(n)\) 的,于是可以 \(O(nk\log n)\) 的复杂度处理,其中 \(k\) 是由 \(w(l,r)\)\(l,r\) 指针移动 \(1\) 后计算新 \(w(l‘,r’)\) 的复杂度。

http://www.agseo.cn/news/363/

相关文章:

  • 总结
  • 82python解析器反查当前安装了那些依赖包
  • 【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
  • nfs服务
  • 低功耗蓝牙BLE与小程序通讯
  • 同事突然关心有没有对象?这可能是职场发展的隐形陷阱
  • TTS微软Azure
  • 12.6 类的封装
  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 6 个替代 Jira 的开源项目管理工具推荐
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 惊世骇俗:《易经》六十四卦与数学公理完整映射表
  • 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“:连接超时问题
  • 27届春招备战一轮复习--第三期(推荐)
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 数字孪生技术如何破解产线效率瓶颈? - 智慧园区
  • 三期集训 日记?
  • 需求爆炸?领歌3步科学精简法,让团队重获掌控力!
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 12.4 菱形继承问题(了解)
  • 25年CSP前ds做题记录
  • 极域电子学生机无法连接教师机
  • Python Flask框架入门_2.API增加授权验证
  • 12.2 类的派生
  • CSP-S模拟18
  • 在服务器后台运行python服务