首先,使用匹配函式 \(P(x_i, x_j) = x_ix_j - x_i^2[j \neq 0]\)。
容易發現,當存在 \(i \neq j\) 時,\(x_ix_j\) 的係數只會增加,因此根據 Schwartz-Zippel
引理,隨機一組 \(x_{1 \sim 26}\) 對應 a~z
即可。
然後,對於 NTT
的過程,有兩個卡常的點:
一是點積 reverse
後轉卷積的過程是捨棄低位的,故利用迴圈卷積的特性可以將 NTT 長度減半。
二是 NTT
是線性的,NTT
的結果可以累加後再進行一次 INTT
。
這樣就能以 max = 70ms
過掉本題 \(3 \times 10 ^ 5\) 的資料(