形式的冪級数解。
解法(想定解は
を定数倍高速化しています)
まずは2次元DPを考える。回移動して
の位置にいるときの組み合わせの数 とすると、答えは、
。各移動で最低1マスは進むため
だから、そこで計算を打ち切れば計算量は
だが、当然TLEする。
配るDPを考えると、遷移は、に足すという操作。
これをFFTを使って高速化したい。そのため、DP配列を多項式と見ることにする。とすると、
となる。さらに、
なので、
がわかる。
このようにDPを多項式に置き換えていくと、解は、の
の係数である。
ここで、であるから
の逆数が求まれば良い。この解説のE問題のところにある方法を使えば、逆数は
で求まるので、
でこの問題は解ける。問題はMODが
であることだが、これはNTTを使ったり、bit分割するFFTをしたりすれば解決する。
コード
https://yukicoder.me/submissions/334144