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

做题记录5 —— 2026.6

做题记录5 —— 2026.6

P4719 【模板】动态 DP

[动态dp] [树链剖分]

先写一下方程,简单的 \(f(i, 0) = \sum\limits_j\max(f(j, 0), f(j, 1)), f(i, 1) = \sum\limits_j f(j, 0) + a_i\)

想办法将其转为矩阵的形式

\[\begin{bmatrix} f_{u, 0} , f_{u, 1} \end{bmatrix} = \begin{bmatrix}f'_{u,0},f'_{u, 1} \end{bmatrix}\times \begin{bmatrix}\max(f_{v, 0}, f_{v, 1}), -\infty \\ -\infty,f_{v, 0} \end{bmatrix} \]

但是发现这样根本就处理不了转移。

不行的原因在于,修改了一个点后,影响了到根的路径上所有的转移矩阵。

引入一个思想,对于轻重儿子分别处理。

可以知道的是,使用树剖后只有 \(\log{n}\) 次轻儿子 \(\to\) 父亲的更新,和 \(\log{n}\) 段重链中重儿子 \(\to\) 父亲的更新。

这需要轻儿子不影响重儿子的信息。

考虑改写一下 dp 设计,\(g_u\) 表示只考虑一个点轻儿子的 dp 值,于是

\[\begin{array}{l} f_{u, 0} = g_{u, 0} + \max(f_{v, 0}, f_{v, 1})\\ f_{u, 1} = g_{u, 0} + a_u + f_{v, 0} \end{array} \]

\(g\) 视为自身参数,写出矩乘形式有

\[\begin{bmatrix} f_{u, 0}, f_{u, 1} \end{bmatrix} = \begin{bmatrix} f_{v, 0}, f_{v, 1} \end{bmatrix}\times \begin{bmatrix} g_{u, 0}, g_{u, 1}\\ g_{u, 0}, -\infty \end{bmatrix} \]

然后更新的时候就是连接两个重链的一个轻儿子,由于此时没有重儿子,于是 \(\begin{bmatrix} f_{u, 0}, f_{u, 1} \end{bmatrix} = \begin{bmatrix} \max(g_{u, 0}, g_{u, 1}), g_{u, 0} \end{bmatrix}\)

发现,这样轻儿子更新一下 \(g\gets g + \Delta\) 就行了,重儿子像序列上那样处理就行了。

P13790 「CZOI-R6」Border

[exKMP] [字符串哈希]

考虑将 border 长度小于等于一半串长和大于的分开讨论。

如果小于等于,两个串是分开的。

考虑枚举 border 长度,判断是否只有一个位置不同。

这个可以先求出两端的 lcp,然后判断 lcp 后的部分是否相等,这个 exKMP 和 字符串哈希就行了。

然后如果 border 长度大于一半串长,那就不能这么做,因为修改可能影响两个串。

这里 border 有两个,修改的话修改靠后的位置,不然会破坏原来的相等,剩下自己讨论一下就行了。

复杂度线性。

CF1278F Cards

[斯特林数] [期望] [组合计数] [二项式定理]

考虑枚举王牌出现了多少次。

\[\begin{aligned} E(x^k) &= \sum_{i = 0}^n i^k \binom ni (\frac 1m)^i (\frac{m - 1}m)^{n - 1}\\ &= \sum_{i = 0}^n i^k \binom ni \frac{(m - 1)^{n - i}}{m^n} = \frac 1{m^n} \sum_{i = 0}^n i^k \binom ni (m - 1)^{n - i} \end{aligned} \]

考虑用斯特林数展开 \(i^k\) 的贡献,就是 \(\sum_{j = 0}^i {k \brace j} i^{\underline{j}}\)

\[\begin{aligned} E(x^k) &= \frac 1 {m^n} \sum_{i = 0}^n \binom ni (m - 1)^{n - 1} \sum_{j = 0}^i {k \brace j} i^{\underline{j}}\\ &=\frac 1 {m^n} \sum_{i = 0}^n \binom ni (m - 1)^{n - 1} \sum_{j = 0}^i {k \brace j} \binom ij j!\\\end{aligned} \]

考虑这样,\(\binom ni \binom ij = \binom nj \binom {n - j}{i - j}\),然后式子可以用二项式定理合并。

\[\begin{aligned} E(x^k)&=\frac 1 {m^n} \sum_{i= 0}^n \sum_{j = 0}^i {k \brace j} j! \binom nj \binom{n - j}{i - j} (m - 1)^{n - i}\\ &= \frac 1{m^n} \sum_{j = 0}^k {k \brace j} j! \binom nj \sum_{i =0}^n \binom{n - j}{i - j} (m - 1)^{n - i}\\ \end{aligned} \]

单独拿出 \(\sum_{i =0}^n \binom{n - j}{i - j} (m - 1)^{n - i}\),推一下这等于 \(\sum_{i = j}^n (m - 1)^{n - i} \binom {n - j}{i - j}\),这里从 \(j\) 开始是组合数都有负数了肯定是 \(0\)

然后考虑整体下移 \(j\),有 \(\sum_{i = 0}^{n - j} (m - i) ^{n - j - i} \binom {n - j}{i} 1^{i} = m^{n - j}\)

终于得到答案

\[E(x^k) = \frac 1{m^n} \sum_{j = 0}^k {k\brace j}j! \binom nj m^{n - j} = \frac 1{m^n} \sum_{j = 0}^k {k\brace j} m^{n - j} n^{\underline{j}} \]

然后递推预处理斯特林数,由于这已经 \(n^2\),其他的直接快速幂就行了。

时间复杂度 \(O(k^2)\)

CF1009F Dominant Indices

[dp] [长链剖分]

题意就是求子树内那个深度的点最多。

\(O(n^2)\) 的 dp 很显然,就是

\[f_{u, i} = \sum_{j\in son(i)} f_{j, i - 1} \]

其中,\(f_{u, 0} = 1\)

考虑长剖优化,发现对于长儿子,你可以直接继承,就是在开头插入一个 \(1\),其余直接继承。

对于轻儿子,考虑暴力。

看似复杂度不变,但这样暴力合并的部分其实复杂度是链长之和,合并一定在链顶,于是复杂度惊人的是线性。

这里注意点细节,swap 是 \(O(1)\) 而直接赋值是 \(O(n)\),实现要注意别把复杂度写假了。

P3546 [POI 2012] PRE-Prefixuffix

[kmp] [字符串哈希]

首先,两个串循环相等,那可以表示为 \(S_1 = A B, S_2 = B A\)

那题目要求的就是 \(S = ABS'BA\),两边的 \(A\) 就是最长border,中间的 \(B\) 二分哈希就行了,但这很不优美。

\(f_i\) 表示去掉了 \([1, i], [n - i + 1, n]\) 后的串的最长 border。

显然有 \(f_i \le f_{i + 1} + 2\),自己画个图。

那可以从 \(f_{\frac n2}\) 开始向下枚举,每次暴力减小就行了,判断用个哈希。

势能分析后发现是 \(O(n)\) 的。

http://www.gsyq.cn/news/1462937.html

相关文章:

  • 优刻得GLM-5 Pro国产芯片推理实战指南
  • OpenCV findCirclesGrid实战:手把手教你搞定相机标定用的圆点棋盘检测
  • 千问 LeetCode 2935. 找出强数对的最大异或值 II JavaScript实现
  • LLM和Agent——专题5: LLM Ops 入门(4)
  • 2026年 广东铝型材厂家推荐:深圳工业铝型材/散热器铝型材/异型铝型材/精密6063铝型材定制开模与挤压源头实力榜单 - 品牌企业推荐师(官方)
  • 基于Arduino LilyPad的视觉暂留手套制作:从原理到可穿戴互动艺术
  • es6新特性功能介绍(二)
  • 沐风老师3DMAX中式屋顶生成器ChineseRoof使用方法
  • HarmonyOS 6 ArkUI 像素单位使用文档
  • 大疆无人机固件自由:3步掌握DankDroneDownloader终极指南
  • DNS 的工作原理:面向开发者的图解指南
  • 构建私有化安全协作平台:以金融级协作平台与全链路安全防护体系重塑政企数字化底座
  • 揭秘低查重AI教材生成秘诀!AI教材写作工具实测,高效产出精品教材!
  • 2026苏州PLC培训标杆名录:三家机构实力对比解析 - 互联网科技品牌测评
  • 实战应用:基于快马生成的代码打造个人专属tvbox配置管理工具
  • 基于Arduino Pro Mini的便携式游戏机DIY全流程指南
  • 2026年炸鸡店创业品牌推荐榜:合肥/南京韩式炸鸡外卖,低成本社区档口与夜宵店优质之选! - 品牌企业推荐师(官方)
  • 2026昆山PLC培训排行:从硬件到就业的客观评估 - 互联网科技品牌测评
  • LinkSwift:5分钟掌握网盘直链解析终极方案,告别限速烦恼
  • 告别熬夜改PPT!百考通AI,一站式解决高校答辩PPT制作难题
  • 3步免费解锁Grammarly Premium高级版:autosearch-grammarly-premium-cookie完整指南
  • 如何在微信小程序中快速生成二维码:weapp-qrcode终极指南
  • 政企专属的私有化安全协作平台,构建金融级全链路安全防护体系
  • 计算机毕业设计之基于数据挖掘算法的电影推荐系统
  • 央视大推特推的OPC(一人公司),我做了!
  • 原创性如何?8款AI论文网站势力榜,毕业季救星!
  • Django Auth 系统底层剖析与用户模型重构
  • 2026年窗户漏水深度选型:如何为你的家庭匹配最佳方案 - 资讯纵览
  • 2026 揭阳卫生间漏水、外墙、楼顶、地下室、阳光房渗漏维修师傅推荐|同城附近上门防水补漏公司测评 - 企业资讯
  • Mac菜单栏太乱?3步用Ice打造清爽高效工作空间