Official

B - Triple Pair Editorial 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)\) となり、十分高速です。

posted:
last update: