subtask 1: d = 1 d=1 d=1
答案为 k n k^n kn。
subtask 2: n ≤ 1000 , k ≤ 100 n\leq1000,k\leq 100 n≤1000,k≤100
设 f [ i ] [ j ] f[i][j] f[i][j]表示由 i i i个复读机来分 j j j个时间点的方案数。
可以得到递推式:
f [ i ] [ j ] = ∑ p = 0 j [ d ∣ p ] C j p × f [ i − 1 ] [ j − p ] f[i][j]=\sum_{p=0}^{j}[d|p]C_{j}^{p}\times f[i-1][j-p] f[i][j]=p=0∑j[d∣p]Cjp×f[i−1][j−p]
O ( n k 2 ) O(nk^2) O(nk2)暴力DP即可。
subtask 3: d = 2 d=2 d=2
把 d = 2 d=2 d=2代入上面的递推式得:
f [ i ] [ j ] = ∑ p = 0 j [ 2 ∣ p ] C j p × f [ i − 1 ] [ j − p ] f[i][j]=\sum_{p=0}^{j}[2|p]C_{j}^{p}\times f[i-1][j-p] f[i][j]=p=0∑j[2∣p]Cjp×f[i−1][j−p]
f [ i ] [ j ] = ∑ p = 0 j [ 2 ∣ p ] j ! p ! ( j − p ) ! × f [ i − 1 ] [ j − p ] f[i][j]=\sum_{p=0}^{j}[2|p]\frac{j!}{p!(j-p)!}\times f[i-1][j-p] f[i][j]=p=0∑j[2∣p]p!(j−p)!j!×f[i−1][j−p]
f [ i ] [ j ] j ! = ∑ p = 0 j [ 2 ∣ p ] 1 p ! f [ i − 1 ] [ j − p ] ( j − p ) ! \frac{f[i][j]}{j!}=\sum_{p=0}^{j}[2|p]\frac{1}{p!}\frac{f[i-1][j-p]}{(j-p)!} j!f[i][j]=p=0∑j[2∣p]p!1(j−p)!f[i−1][j−p]
设 A i ( x ) = ∑ j = 0 ∞ f [ i ] [ j ] × x j j ! , B ( x ) = ∑ j = 0 ∞ [ 2 ∣ j ] x j j ! A_i(x)=\sum_{j=0}^{\infty}f[i][j]\times\frac{x^j}{j!},B(x)=\sum_{j=0}^{\infty}[2|j]\frac{x^j}{j!} Ai(x)=∑j=0∞f[i][j]×j!xj,B(x)=∑j=0∞