コンテンツにスキップ

APIs > convolution > convolution_mod

convolution_mod

convolution_mod[M: Int](a: List[StaticModint[M]], b: List[StaticModint[M]]) -> List[StaticModint[M]]

畳み込みを mod mm で計算する。a,ba, b の少なくとも一方が空配列の場合は空配列を返す。

制約

  • 2m2×1092 \le m \le 2 \times 10^9
  • mm は素数
  • 2c(m1)2^c | (m - 1) かつ a+b12c|a| + |b| - 1 \le 2^c なる cc が存在する。

計算量

n=a+bn = |a| + |b| として

  • O(nlogn+logm)O(n \log n + \log m)