1 条题解
-
0
字符串计数:题解
思路
任意更长的奇回文中心都包含一个长度为 的回文,所以美丽条件等价于对所有 都有 。忽略数量上限时,前两位各有 种选择,之后每位有 种,方案数为 。
又因为每个 ,同一个长度为 的字符串中最多有两种字母超过各自上限。因此只需容斥到二阶。
做法
子任务 1:直接枚举
当 时逐位枚举 种字母,检查数量上限和与前两位不同的条件。
子任务 2:逐对重新计数
固定两种字母 ,把字符分成 、、其他三类。状态记录当前长度、 使用次数和末两位类别;转移到“其他”时,若倒数第二位也是其他则有 种,否则有 种。对每对字母重新运行该 DP 后执行容斥,适用于 。
满分算法
上述三类 DP 的结果与具体选择哪两个字母无关,只与 有关,因此只需预处理一次。设 为指定字母 恰好出现 次的合法串数, 为指定一种字母恰好出现 次的方案数。
答案为
$$26^2\cdot25^{n-2}-\sum_i\sum_{x>c_i}G_x+\sum_{i<j}\sum_{x>c_i,y>c_j}F_{x,y}.$$二维后缀和可以常数时间查询最后一项。
复杂度
枚举算法为 ;逐对重算为 ;满分算法为 时间、 空间。
- 1
信息
- ID
- 1275
- 时间
- 5000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者