Description
请去传送门阅读。
Solution
考虑(Min-Max)容斥,我们要求的是所有长为(m)的串成功匹配的时间的最小值的期望,将这个作为(Min(S))
那么
[ans=sum_{Tsubseteq S}(-1)^{|T|-1}E(Max(T))
]
而(Max(T))就是(T)中所有串全部匹配的期望时间,将其转化为所有时刻没有成功匹配的概率之和,在(t)时刻没有成功匹配的概率,我们通过容斥没有匹配的位置数量来完成,设(g(T))表示(T)中所有串全部匹配需要的课程数,(sum)为课程总数,即:
[Max(T)=sum_{t=0}^{infty}sum_{i=0}^{g(T)}(-1)^{i+1}inom{g(T)}{i}(frac{sum-i}{sum})^t\
=sum_{i=0}^{g(T)}(-1)^{i+1}inom{g(T)}{i}sum_{t=0}^{infty}(frac{sum-i}{sum})^t\
=sum_{i=0}^{g(T)}(-1)^{i+1}inom{g(T)}{i}frac{sum}{i}
]
于是直接枚举(T)即可达到(mathcal O(2^{n-m}nm))的复杂度。期望得分(50)分(我修改了(subtask))。
注意到(g(T))相同的(T)贡献是完全相同的,考虑先计算出(g(T)=k)的(T)的个数,考虑(dp),因为只有前(m)个串会影响当前串对(g(T))的影响,所以设(f_{i,s,j})表示考虑了前(i)个串,前(m)个串是否在(T)中的状态为(s),(g(T)=j)时(T)的总数,直接枚举当前位置的串是否选择转移即可。复杂度为(mathcal O(2^m n^2m)),与上一部分结合即可拿到满分。