Closed yosupo06 closed 4 years ago
k-th log じゃなくて k-th root だよね (しかも n になってるし)
m が素数以外で解けるのかは知らない
x^k == a (mod p) O(k^3 + k^2 log p) 系もあるけどここでやるのは p^(1/4) 系だよねたぶん p が 10^9 まででケースが少ないと離散対数で解けてしまうので云々
O(p^{1/4+ε})だと下の制約で最悪ケース1secぐらいで丁度良いと思います。 pが合成数の場合の解法は考えたことないです。
p_i, a_i, k_i について x^k=a_i (mod p_i) を満たすxを出力せよ。 ただし解が存在しなければ-1を出力せよ。
Q p_1 a_1 k_1 p_2 a_2 k2 \vdots p{Q} a{Q} k{Q}
Q < 5e3 p_i < 1e9 a_i < p_i
入力順、了解です。 Kの制約を忘れていました。 1<= K <= 1e9 のつもりでした。K=0を含めるかどうかはどうしましょうか。 X^K=1 mod Pの解にX=0,K=0を含めるかなど。
入れておいていいと思います -> K = 0
worst_caseでも100msで思ったより速いですね………
https://judge.yosupo.jp/submission/5840 出ちゃいけないものが出てます
a,n, mが与えられる
x^n = a(mod m)を満たすxを求める