Official

E - Three View Drawing Editorial by zkou

解説

大まかな方針としては,\((a, b, c), (b, c, a), (c, a, b)\) のような \(3\) つ組を \(3\) つずつまとめて \(1\) グループとして追加・除去する方針を考える. なお,例外的に \((a, a, a)\)\(1\) つで \(1\) グループとなる.

上記の方針に整合するように,まずは \(K = N^2\) の場合を構築する. たとえば \(x + y + z \equiv 0 \pmod{N}\) を満たす点集合を取ると条件を満たす. ここからグループ単位で点を除去して任意の個数の場合を構成したい.除きたい個数を \(r\) とする. ほとんどのグループは \(3\) つの元からなるので,\(r \bmod 3\) 個取り除いた後に \(3\) 個ずつ取り除く方針で考える.

まず,\(N \equiv 0 \pmod{3}\) の場合を考える. この場合は \((a, a, a)\) のように \(1\) つで \(1\) グループになるのは \((0, 0, 0)\), \((N/3, N/3, N/3)\), \((2N/3, 2N/3, 2N/3)\) のみであり,残りは全て \((a, b, c)\) のように \(3\) つで \(1\) グループとなる. したがって,\(r \bmod 3\) 個だけ前者のグループから除き,あとは後者のグループから必要なだけ除けばよい.

次に,\(N \not\equiv 0 \pmod{3}\) の場合を考える. この場合は \((a, a, a)\) のように \(1\) つで \(1\) グループになるのは \((0, 0, 0)\) のみである. それゆえ,先ほどの方針だと,\(r \bmod 3 = 2\) の場合だけ処理できず,この場合のみ別の方法を考える必要がある. \((1, 1, t)\) という組が属するグループを考えると,\(t \neq 1\) なので,\(3\) 個の元からなるグループである. このグループを取り除いたあと \((1, 1, 1)\) を追加することができ,これで \(K = N^2 - 2\) を構成できる. あとは \(3\) つの元からなるグループを取り除いていくと,最終的に \((0, 0, 0)\)\((1, 1, 1)\) のみにまで減らせるので,\(r \bmod 3 = 2\) の場合も任意の \(K\) に対して構成できている.

posted:
last update: