当前位置: 首页 > 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.jsqmd.com/news/951319/

相关文章:

  • GEO源头厂商主体杭州爱搜索:如何构建AI搜索优化长效竞争力 - 品牌报告
  • 优刻得GLM-5 Pro国产芯片推理实战指南
  • 千问 LeetCode 2935. 找出强数对的最大异或值 II JavaScript实现
  • LLM和Agent——专题5: LLM Ops 入门(4)
  • 单片机答辩
  • OpenCV findCirclesGrid实战:手把手教你搞定相机标定用的圆点棋盘检测
  • 0.1mm微裂纹实时闭环剔除技术揭秘
  • Arduino与光耦驱动辉光管:替代74141芯片的矩阵扫描方案
  • TVA闭环优化焊接参数
  • ECS 为什么最终会走向 Archetype
  • 2026年 广东铝型材厂家推荐:深圳工业铝型材/散热器铝型材/异型铝型材/精密6063铝型材定制开模与挤压源头实力榜单 - 品牌企业推荐师(官方)
  • es6新特性功能介绍(二)
  • 基于Arduino LilyPad的视觉暂留手套制作:从原理到可穿戴互动艺术
  • 超越本地智能:在快马平台借助ai大模型实现自然语言驱动python代码生成
  • 沐风老师3DMAX中式屋顶生成器ChineseRoof使用方法
  • HarmonyOS 6 ArkUI 像素单位使用文档
  • 2026年6月高频机厂家推荐排行榜:高周波塑料热合机、自动高频机设备、服装高频机模具及全自动高频机源头厂商精选 - 企业推荐官【官方】
  • 基于Arduino与ESP8266的宠物机器人球DIY:物联网与低功耗设计实践
  • DeepSeek-V4:长上下文与Agent协同驱动的工作流重构
  • 大疆无人机固件自由:3步掌握DankDroneDownloader终极指南
  • 手把手教你学Simulink--基于峰值电流模式的 Boost 变换器建模与环路补偿仿真
  • 2026 曲靖卫生间漏水、外墙、楼顶、地下室、阳光房渗漏维修师傅推荐|同城附近上门防水补漏公司测评 - 企业资讯
  • 华为健康数据导出终极指南:3分钟将HiTrack转换为TCX格式
  • Occupancy Network 凭什么成为自动驾驶空间理解的核心技术?| 全网独家复现稠密体素空间建模、彻底摒弃传统3D检测类别绑定桎梏、实现开放式全场景泛化感知、强力赋能复杂城市NOA与无图智驾
  • Git 共享分支安全撤销提交与 Gerrit Change-Id 问题处理指南
  • DNS 的工作原理:面向开发者的图解指南
  • 开源中国加入OpenChain,参与全球开源供应链安全标准建设,筑牢国产化安全底座
  • 掌握《塞尔达传说:旷野之息》存档转换:Switch与WiiU跨平台游戏进度同步终极指南
  • 构建私有化安全协作平台:以金融级协作平台与全链路安全防护体系重塑政企数字化底座
  • 揭秘低查重AI教材生成秘诀!AI教材写作工具实测,高效产出精品教材!