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

convolution_mod

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

template <unsigned int mod = 998244353, std::integral T>
std::vector<T> convolution_mod(const std::vector<T> &a, const std::vector<T> &b);

概要

任意 mod 畳み込み (3 つの NTT + Garner 法)

3 つの NTT-friendly 素数で畳み込み、Garner 法で復元した値を mod で取る。 mod は NTT-friendly でなくてもよい。

テンプレートパラメータ

名前 説明
mod 出力を取る法 (既定: 998244353)
T 整数型 (std::integral)

パラメータ

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

戻り値

std::vector<T> a と b の畳み込みを mod で取った値 (長さ a.size() + b.size() - 1)

計算量

注意

備考

関連項目

参照