B - Triple Pair Editorial
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)\) で解くことが出来ます。これは十分高速です。
posted:
last update: