あああああ

オタク & 競プロ

ARC140-F ABS Permutation (Count ver.) やや別解

問題

https://atcoder.jp/contests/arc140/tasks/arc140_f

 

解説

 

公式解説では [x^N] (x+2x^2+2x^3+...)^K を 1<=K<=N について求めよというパートが出てきてここでダブリングをしていますが、別の方法を紹介します。

 

Kを固定してみると、求めたい値は

[x^(N-K)] (1+2x+2x^2+...)^K

= [x^(N-K)] ( (1+x) / (1-x) )^K

= [x^(N-K)] (2/(1-x)-1)^K

となり、ここを二項定理でバラして K - i = j とすると、

(分子) = 2^i * (-1)^j  * (N-j-1)! * (i+j)!

(分母) = (N-(i+j))! * (i-1)! * i! * j!

になって畳み込めるので、そうすると高速になります。

 

実装 (fastest)

https://atcoder.jp/contests/arc140/submissions/43458503

 

質問

[x^N] f(x)^K を K=1,2,...,について求める系って一般的ななんかうまいやり方ありますか?