atcoder Convolution库(NTT)用法

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/162096360

求:

ci=j=0iajbijc_i = \sum_{j = 0}^i a_j b_{i - j}

用法:

1
vector<T> convolution<int m = 998244353>(vector<T> a, vector<T> b)

其中 TT 是int、longlong等东西

也可以提前定义:

1
2
template <int m = 998244353, typename T>
vector<T> convolution(vector<T> a, vector<T> b);

m必须满足NTT的相应要求

在这里插入图片描述

如果不取模的话,即在 long long 范围内

1
vector<ll> convolution_ll(vector<ll> a, vector<ll> b)