algo — C++23 日本語リファレンス GitHub

convolution_ll2

関数 · NTT・畳み込み (convolution)

std::vector<std::int64_t> convolution_ll2(const std::vector<std::int64_t> &a, const std::vector<std::int64_t> &b);

概要

係数積が小さいときの畳み込み (2 つの NTT + CRT)

MOD1 $= 754974721$ と MOD3 $= 469762049$ の 2 素数だけで畳み込み、 CRT で復元する。NTT が 1 回少ない分 convolution_ll より速い。

パラメータ

名前 説明
a 入力多項式の係数列
b 入力多項式の係数列

戻り値

std::vector<std::int64_t> a と b の畳み込み (長さ a.size() + b.size() - 1)

計算量

注意

備考

関連項目