Angesichts eines Arrays $ A $, müssen wir Produkt von $ A_ {j} $ - $ A_ {I} $ modulo $ 998244353 $ über alle $ i $ und $ J $ gegeben $ j> i $
-
29-09-2020 - |
Frage
Angesichts eines Arrays
Wenn Anzahl der Elemente im Array groß sein könnten (bis 10 ^ 5 $ ) Ich suche nach einer Lösung von Order $ nlogg$ .
Ich habe versucht, ein Array als Polynom zu repräsentieren, kann aber etwas davon abhalten.
Bitte helfen.
Lösung
Das Produkt $$ v=prod_ {i
Das Quadrat dieser Nummer ist das diskriminierend $ D $ der Polynom
Dies ist wiederum gleich $$ V ^ 2= d= (- 1) ^ {n (n-1) / 2} \ prod_ip '(A_i) $$
Sie können die Koeffizienten von $ p (x) $ und somit $ p '(x) $ < / span>, bewerten Sie es in der
Sie können das alles in $ O (n \ log ^ 2 (n)) $ .
siehe den relevanten Algorithmen hier < / a>.
Für die modulare Quadratwurzel können Sie Tonelli-Shanks aus Effizienz. Obwohl die theoretische Reihenfolge dieses Schritts konstant ist, ist der Prime $ 998244353 $ fixiert.