公式

B - Triple Pair 解説 by PCTprobability


\(2\) つの解法があるため、両方を解説します。

1 : \(x,y,z\) の最大値を考察することで得られる \(\mathrm{O}(\sqrt N)\) 解法(本解説)

2 : \(x,y,z\) の中央値を考察することで得られる \(\mathrm{O}(\sqrt N)\) 解法(https://atcoder.jp/contests/arc160/editorial/6356)


以下、\(M = \lfloor \sqrt N \rfloor\) と置きます。

\(\max(x,y,z) \le M\) の場合

かならず条件を満たします。このような \((x,y,z)\) の個数は \(M^3\) 個です。

\(\max(x,y,z) > M\) の場合

\((M+1)^2 > N\) より、最大値を取る変数が \(1\) 個であることに注意し、\(x > y,z\) と置きます。\(x\) を固定すると、条件は \(y,z \le \left\lfloor\frac{N}{x} \right\rfloor\) と同値です。

\(x,y,z\) のどれが最大値を取るかで \(3\) 通りの自由度があることも考え、条件を満たす \((x,y,z)\) の個数は \(3 \times \sum_{i=M+1}^{N} \left\lfloor\frac{N}{i}\right\rfloor ^2\) です。\(\frac{N}{i}\) の種類は \(\mathrm{O}(\sqrt N)\) 種類しかないため、この値は \(\mathrm{O}(\sqrt N)\) で求めることが出来ます。

よって、この問題を \(1\) ケース \(\mathrm{O}(\sqrt N)\) で解くことが出来ます。これは十分高速です。

投稿日時:
最終更新: