B - Triple Pair 解説
by
PCTprobability
\(2\) つの解法があるため、両方を解説します。
1 : \(x,y,z\) の最大値を考察することで得られる \(\mathrm{O}(\sqrt N)\) 解法(https://atcoder.jp/contests/arc160/editorial/6355)
2 : \(x,y,z\) の中央値を考察することで得られる \(\mathrm{O}(\sqrt N)\) 解法(本解説)
\(x \le y \le z\) を仮定します。ここで、\(yz \le N\) より、\(y \le \sqrt N\) であることに注意してください。以下のように場合分けをします。
\(x < y < z\) の場合
\(1 \le x < y\) かつ \(y < z \le \lfloor\frac{N}{y}\rfloor\) が条件と同値です。並び替えも含め、このような \((x,y,z)\) の個数は \(6(y-1) \left(\lfloor\frac{N}{y}\rfloor - y\right)\) 個です。
\(x = y < z\) の場合
\(y < z \le \lfloor\frac{N}{y}\rfloor\) が条件と同値です。並び替えも含め、このような \((x,y,z)\) の個数は \(3 (\lfloor\frac{N}{y}\rfloor - y)\) 個です。
\(x < y = z\) の場合
\(1 \le x < y\) が条件と同値です。並び替えも含め、このような \((x,y,z)\) の個数は \(3(y-1)\) 個です。
\(x=y=z\) の場合
\(1\) 通りのみが条件を満たします。
よって、上記の \(4\) パターンを全ての \(y\) に対して総和を取ればよいです。計算量は 1 ケース \(\mathrm{O}(\sqrt N)\) となり、十分高速です。
投稿日時:
最終更新: