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

convolution_ll

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

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

概要

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

3 つの NTT-friendly 素数で畳み込み、Garner 法で復元することで オーバーフローしない範囲の int64_t 畳み込みを求める。

パラメータ

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

戻り値

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

計算量

備考

関連項目