做题记录 26.2.20
\(\textcolor{black}\odot\) P10005 [集训队互测 2023] 基础寄术练习题
令 \([n]=[1,n]\cap \N\)
先考虑 \(t=1\) 的情况
对于 \(a_{1\sim n}\),考虑以下过程:一共 \(\sum a_{1\sim n}\) 个元素,其中有 \(a_i\) 个属于第 \(i\) 类,将它们重排序,要求第 \(i-1\) 类最后一个元素在第 \(i\) 类之前,求满足要求的概率
显然只有每一类最后一个元素与合法性有关,从前往后依次插入每一类元素,插入第 \(i\) 类时,最后一个元素需要是 \(1\sim i\) 类总计 \(\sum a_{1\sim i}\) 个元素中,第 \(i\) 类的 \(a_i\) 个,显然这些情况概率相同,因此这一步合法的概率为 \(\frac{a_i}{\sum a_{1\sim i}}\)
从而总概率为 \(\prod_{i=1}^n \frac{a_i}{\sum a_{1\sim i}}=\prod_{i=1}^n a_i\cdot \prod_{i=1}^n \frac 1{s_i}\)
即 \(\prod_{i=1}^n a_i\cdot f(a)\) 是重排列合法的概率
对于有序的 \(a_{1\sim n}\),考虑其 \(n!\) 种排列的 \(f(a)\) 之和
假定按有序的 \(a\) 构造 \(\sum a_{1\sim n}\) 个元素,任意排列,取出每一类的最后一个元素,按顺序重编号,则每一种排列和一种合法方案双射,从而总概率为 \(1\),即 \(\sum f(a)=\prod_i \frac 1{a_i}\)
从而答案为
\(dp\) 可做到 \(O(nm)\)
然后考虑 \(t=2\) 的情况,按 \(t=1\) 的方式构造,每个合法排列权值为 \(a_1\)
枚举 \(a_1=v\),则 \(a_{2\sim n}\in [m]/\{v\}\),对于有序的 \(a_{2\sim n}\),考虑其 \((n-1)!\) 种重排列的贡献之和,设 \(a\) 的集合为 \(S\),则 \(|S|=n-1\) 且 \(S\subseteq [m]/\{v\}\)
容斥,假定 \(a_{2\sim n}\) 最后一个元素位置有序,但 \(T\subseteq S\) 中的 \(a_i\) 最后一个元素在 \(a_1\) 的最后一个元素之前,容斥系数为 \((-1)^T\)
\(T\) 中方案数为 \(\binom{\sum T}{T_1,T_2,\cdots,T_{|T|}}\),\(T\) 在 \(a_1\) 之前,将 \(a_1\) 插入 \(T\) 的方案数为 \(\binom{a_1-1+\sum T}{a_1-1}\),从 \(a_{1\sim n}\) 中选出 \(a_1\) 和 \(T\) 的方案数为 \(\binom{\sum a}{a_1+\sum T}\)
总贡献为
由此答案为
考虑 \(dp\),令 \(f_{i,j,k,0/1}\) 表示考虑了 \(1\sim i\),目前 \(|S|=i\),\(\sum T=j\) 的总贡献
时间复杂度 \(O(nm^3)\)

浙公网安备 33010602011771号