ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

AOJ 1232 - Calling Extraterrestrial Intelligence Again

問題
提出コード

問題概要

3つの整数m,a,bが与えられます。
pq \leqq mかつa/b \leqq p/q \leqq 1となるような(p,q)のうち、pqが最大となるようなペアを求めてください。
制約は、4 \lt m \lt 100000, 1 \leqq a \leqq b \leqq 1000です。

解法

まずはエラトステネスの篩を利用して、素数を洗い出します。
qについて全探索をすると、pの最適解は、あるqに対して、
p \leqq m/qaq/b \leqq p \leqq qを満たすような最大の素数になります。
ので、二分探索でpの最大値を毎回求め、答えを求めていけばよいです。

のですが、AC後に他の解説ブログを見たところ、m/qという制約のおかげで、pも全探索できるらしいです…ちょうど調和級数の形になりますね。

感想

篩で洗い出す素数の個数を2回間違えました(最初は少なすぎてWAが出て、その後増やしすぎてTLEになりました)…反省します。