library-checker-problems icon indicating copy to clipboard operation
library-checker-problems copied to clipboard

[問題案]Discrete Logarithm(discrete_logarithm_mod)

Open yosupo06 opened this issue 5 years ago • 12 comments

Tケース

x, y, mが与えられる。x^k = y (mod m)なるkのうち、最小を答えよ(存在しない場合-1)

  • 1 <= T <= 100?
  • 1 <= m <= 10^9
  • 0 <= x, y < m

yosupo06 avatar Sep 12 '19 15:09 yosupo06

2 <= m -> 1 <= m

yosupo06 avatar Sep 12 '19 15:09 yosupo06

sqrt(10^9) logで100ケースも動くか?

yosupo06 avatar Sep 12 '19 15:09 yosupo06

unordered_map なら log が消えるみたいな主張 (うーん)

hos-lyric avatar Sep 16 '19 12:09 hos-lyric

φ(m) がいろんな素因数で割れるとき速い,みたいな方法はあるので,複数ケースで時間計るのは要注意という話があります https://ja.wikipedia.org/wiki/安全素数 https://en.wikipedia.org/wiki/Pohlig–Hellman_algorithm

hos-lyric avatar Sep 16 '19 13:09 hos-lyric

問題概要

  • 問題ID: discrete_logarithm
  • 問題名: Discrete Logarithm

Tケース与えられる。

x, y, mが与えられる。x^k = y (mod m)なるkのうち、最小を答えよ(存在しない場合-1)

入力

T
x y m
x y m
:
x y m

出力

各行に求めたもの

制約

1 <= T <= 100?(速度見ながら調整) 1 <= m <= 10^9 0 <= x, y < m

yosupo06 avatar Sep 27 '19 12:09 yosupo06

0 2 4

で 1 と言いませんか

ちゃんと読んでないけど m が素数じゃないとき全然ダメな気がします

hos-lyric avatar Oct 15 '19 12:10 hos-lyric

バグ確認!

yosupo06 avatar Oct 15 '19 13:10 yosupo06

0^0が未定義 1です

yosupo06 avatar Oct 15 '19 14:10 yosupo06

巡回に入るまでが長いケース、x = 2でmod = 2^29など

yosupo06 avatar Oct 15 '19 15:10 yosupo06

もっと大きい制約で解けた どうすっかな

https://loj.ac/problem/6542 http://elliptic-shiho.hatenablog.com/entry/2016/12/02/051931

yosupo06 avatar Oct 16 '19 12:10 yosupo06

個人的には両方ほしいです 実装量がかなり変わる奴はICPCでは使い分けるので(最小有向全域木のO(VE) とO(E log V)とか

beet-aizu avatar Oct 16 '19 12:10 beet-aizu

#78

yosupo06 avatar Oct 16 '19 12:10 yosupo06