AtCoder Dwango Programming Contest V E

时间:2021-10-28 15:10:56

题目链接:https://dwacon5th-prelims.contest.atcoder.jp/tasks/dwacon5th_prelims_e

题目描述:

给定一个大小为\(N\)的数组\(A\),记\(f(p)\)为排列\(p\)的所有环的中的最小值的乘积。记\(b_i\)为所有形成了\(i\)个环的排列的\(f(p)\)的和。求\(b_1, b_2, ..., b_N\)的\(GCD\)模\(998244353\).

解题报告:

先将数组排序,然后想到一个和第一类斯特林数DP很类似的一个DP:

\[DP[i][j] = DP[i - 1][j - 1] * a_i + DP[i - 1][j] * i
\]

答案即为\(GCD_{i=1}^N DP[N][i]\)

记多项式\(P_i(t)\)为\(\sum_{j=1}^i DP[i][j] \cdot t^j\)

DP方程可以改写成以下形式:

\(P_i(t) = P_{i-1}(t) * (a_i * t + i)\)

\(P_N(t) = \prod_{i=1}^N (a_i * t + i)\)

引理:
记c(P)为多项式P所有系数的GCD。有c(PQ)=c(P)c(Q)。

根据以上引理,有:\(c(P_N(t)) = \prod_{i=1}^N \gcd(a_i, i)\)