题意简述
¶一个长度为 的串
表示算式:。其中:
且且
令或令或
交换操作:从 中任选两个字符(可以选择 *
号),交换它们的位置
若 次交换后, 的期望值为 ;求 。
数据范围:。
题目简析
¶为了计算期望,可以先求出所有的可能。对于一个长度为 的串 ,记它所代表的算式的的计算结果为 。因为每交换一次后会得到多个可能的串,我们用
表示执行 此交换后,所有乘号在位置 处的串构成的可重集合。所以我们想要的答案就是 .
设 。注意到,
所以,
紧接着,考虑 如何进行状态转移:
# | | | |
---|
1 | 动 | 动 | 动 |
2 | 动 | 动 | 不动 |
3 | 动 | 不动 | 动 |
4 | 动 | 不动 | 不动 |
5 | 不动 | 动 | 动 |
6 | 不动 | 动 | 不动 |
7 | 不动 | 不动 | 动 |
8 | 不动 | 不动 | 不动 |
我们逐一进行考虑,则所有情况的和就是 .
显然不可行,故贡献为:
即 上的字符和 上的字符交换,贡献为:
即 上的字符和 上的字符交换,贡献为:
即 上的字符和剩下的 个字符中的任一字符交换,贡献为:
即 上的字符和 上的字符交换,贡献为:
即 上的字符和剩下的 个字符中的任一字符交换,贡献为:
即 上的字符和剩下的 个字符中的任一字符交换,贡献为:
即剩下的 个字符中的任选两个字符交换,贡献为:
对于 、、、、 利用前缀和,可以在 的时间内计算出来。故算法的总时间复杂度为 .
小记
¶最后一个小时一直和 ZPH 学长讨论这一道题,当时实在是太弱,以至于这样的数据范围竟然想着推数学公式。。。ORZ。。
题解是赛后一周写的,所以是 pdf 格式。
Markdown 中,两侧下划线表示斜体,所以书写数学公式时下划线要用 '' 转义。
Related
¶