Official

L - LIS Triangle Editorial by AngrySadEight


以下,問題文中の条件を,上から順に \(1\) つ目,\(2\) つ目,\(3\) つ目の条件と呼びます.

\(K = 1\) の場合には,条件を満たす \(P\) は存在しません.\(P\) の項は全て異なるため,\(P_i = 1, P_{i + 1}=1, P_{i+2} = 1\) のいずれかが成り立つ場合に,\(P_i, P_{i+1}, P_{i+2}\)\(3\) 辺とする非退化な三角形が存在せず, \(3\) つ目の条件を満たさないためです.

\(K=2\) の場合には,条件を満たす \(P\) を必ず構成することができます.以下ではそれを示します.

\(k\)\(2 \leq k \leq N\) を満たす整数とし,整数列 \(Q\) を,\(Q = (2, 3, \dots, k, N + 1, N, \dots, k + 1)\) のように定めます.このとき,整数列 \(Q\) の最長増加部分列の長さは \(k \) となります.このようにして定められた整数列 \(Q\) は,明らかに \(1\) つ目の条件を満たします.

ここで,\(k\)\(k = 2\) または \(k - 1 + k > N + 1\) を満たす場合には,\(Q\)\(3\) つ目の条件を満たします.したがって,\(L > \dfrac{N}{2} + 1\) の場合には,\(P\) を,\(Q\) において \(k = L\) とすることで得られる整数列が条件を満たします.

また,整数列 \(Q'\) を,\(Q\) を反転させて得られる整数列とします.すなわち \(Q' = (k + 1, \dots, N, N + 1, k, \dots, 3, 2)\) とします.このとき,整数列 \(Q'\) の最長増加部分列の長さは \(N+1-k\) となります.したがって,\(L < \dfrac{N}{2}\) の場合には,\(P\) を,\(Q'\) において \(k = N + 1 - L\) とすることで得られる整数列が条件を満たします.

これらの方法で,多くの場合については構成可能です.構成できないのは \(\dfrac{N}{2} \leq L \leq \dfrac{N}{2} + 1\) の場合ですが,この場合は整数列 \(Q, Q'\) の代わりに,整数列 \(R = (3, 4, \dots, k, N + 1, N, \dots, k + 1, 2)\) および整数列 \(R' = (2, k + 1, \dots, N, N + 1, k, \dots, 4, 3)\) を考えることで上手くいきます.

例として,\(N = 8\) の場合の,\(L\) の値に対応する \(P\) を示します.

  • \(L = 1\) の場合:\(P = (9, 8, 7, 6, 5, 4, 3, 2)\)
  • \(L = 2\) の場合:\(P = (8, 9, 7, 6, 5, 4, 3, 2)\)
  • \(L = 3\) の場合:\(P = (7, 8, 9, 6, 5, 4, 3, 2)\)
  • \(L = 4\) の場合:\(P = (2, 7, 8, 9, 6, 5, 4, 3)\)
  • \(L = 5\) の場合:\(P = (3, 4, 5, 6, 9, 8, 7, 2)\)
  • \(L = 6\) の場合:\(P = (2, 3, 4, 5, 6, 9, 8, 7)\)
  • \(L = 7\) の場合:\(P = (2, 3, 4, 5, 6, 7, 9, 8)\)
  • \(L = 8\) の場合:\(P = (2, 3, 4, 5, 6, 7, 8, 9)\)

\(K \geq 3\) の場合には,\(K = 2\) の場合に構成した \(P\) の各要素に \(K - 2\) を加えることで,条件を満たす \(P\) を得られます.

posted:
last update: