cp-library

競技プログラミング用 C++ ライブラリ

View the Project on GitHub qandori/cp-library

:heavy_check_mark: 軽量 FPS の合成逆元

fps/compositional_inverse_light.hpp · GitHub で見る

共通ページ · 軽量実装

#include "lib/fps/compositional_inverse_light.hpp"

light_fps f{0, 1, 1};
auto g = light_fps_algorithms::compositional_inverse(f, 5);
// {0, 1, -1, 2, -5} (mod 998244353)

compositional_inverse(f,deg = -1) は \(f(g(x))\equiv x\pmod{x^{\mathrm{deg}}}\) を満たす定数項 0 の係数列を返します。deg は返す係数数で、省略時は f.size()、0 なら空列、1 なら {0} です。入力は変更しません。

f の定数項は 0 とし、deg >= 2 なら f.size() >= 2 かつ \(f_1\ne0\) が必要です。deg は \(2^{21}\) 以下とします。法や係数型の条件は 軽量 FPS と同じです。

出力係数数を \(n\) として、時間は \(O(n\log^2 n)\)、追加空間は \(O(n\log n)\) です。

依存ライブラリ

検証コード

コード

#ifndef CP_FPS_COMPOSITIONAL_INVERSE_LIGHT_HPP
#define CP_FPS_COMPOSITIONAL_INVERSE_LIGHT_HPP
#include "../components/fps_composition_light.hpp"
#endif
Back to top page