B - Matching Query Editorial by toam

証明

ここでは部分点解法の解説で登場する「\(g(x_0)=\min(x_0+p,q,-x_0+r)\) の形で表すことができます」の部分を証明します.(満点解法には直接は関係ありません.)


\(x_0=t\) と固定したときに貪欲に \(x_1,x_2,\ldots,x_{M-1}\) を決めていくことで生成される列を \(X(t)\) とする.

すべての \(t\) について \(k(0\leq 0\lt M-2)\) が存在して \(X(t)_k+X(t)_{k+1}\lt C_{k+1}\) となるとき

最小の \(k\)\(k_0\) とすると \(X(t)_{k_0+1}=B_{k_0+1}\) である.

[1] \(k_0\) が偶数のとき

  • \(X(t+1)_0=X(t)_0+1\)
  • \(X(t+1)_1=X(t)_1-1\)
  • \(X(t+1)_2=X(t)_2+1\)
  • \(\vdots\)
  • \(X(t+1)_{k_0}=X(t)_{k_0}+1\)
  • \(X(t+1)_{k_0+1}=X(t)_{k_0+1}\)
  • \(X(t+1)_{k_0+2}=X(t)_{k_0+2}\)
  • \(\vdots\)
  • \(X(t+1)_{M-2}=X(t)_{M-2}\)

となるため \(\sum_{i=0}^{M-2} X(t+1)_i=\sum_{i=0}^{M-2} \sum X(t)_i+1\) となる

[2] \(k_0\) が奇数のとき

  • \(X(t+1)_0=X(t)_0+1\)
  • \(X(t+1)_1=X(t)_1-1\)
  • \(X(t+1)_2=X(t)_2+1\)
  • \(\vdots\)
  • \(X(t+1)_{k_0}=X(t)_{k_0}-1\)
  • \(X(t+1)_{k_0+1}=X(t)_{k_0+1}\)
  • \(X(t+1)_{k_0+2}=X(t)_{k_0+2}\)
  • \(\vdots\)
  • \(X(t+1)_{M-2}=X(t)_{M-2}\)

となるため \(\sum_{i=0}^{M-2} X(t+1)_i=\sum_{i=0}^{M-2} X(t)_i\) となる

ここで,\(X(t)\)\(k_0\) が奇数なら \(X(t+1)\)\(k_0\) は偶数になりえないことがわかる.すなわち \(\sum_{i=0}^{M-2} X(t+1)=\sum_{i=0}^{M-2} X(t)\) なら \(\sum_{i=0}^{M-2} X(t+2)=\sum_{i=0}^{M-2} X(t+1)\) が成り立つ.よって \(\sum_{i=0}^{M-2} X(t)=\min(t+a,b)\) の形式で書ける.

さらに \(X(0)_{M-2}=X(1)_{M-2}=\ldots=X(B_0)_{M-2}\) が成り立つから,\(X(t)_{M-1}=\min(c-t,d)\) の形で書ける.

よって \(\sum X(t)=\min(t+a,b)+\min(c-t,d)=\min(t+p,q,-t+r)\) である.

ある \(t\) が存在して,すべての \(k(0\leq 0\lt M-2)\) に対して \(X(t)_k+X(t)_{k+1}= C_{k+1}\) となるとき

そのような \(t\) は区間になっていることが分かる.最小値,最大値を \(l,r\) とする.

\(l\neq 0\) のとき,ある奇数 \(k(\leq M-2)\) が存在して \(X(l)_k=B_k\) となっている.また,\(r\neq B_0\) のとき,ある偶数 \(k(\leq M-2)\) が存在して \(X(r)_k=B_k\) となっている.

[1] \(l\leq t\leq r\) のとき

  • \(X(t)_0=X(l)_0+(t-l)\)
  • \(X(t)_1=X(l)_1-(t-l)\)
  • \(X(t)_2=X(l)_2+(t-l)\)
  • \(\vdots\)

となっており,

  • \(M\) が奇数なら \(X(t)_{M-2}=X(l)_{M-2},\sum_{i=0}^{M-2} X(t)_i=\sum_{i=0}^{M-2} X(l)_i\)
  • \(M\) が偶数なら \(X(t)_{M-2}=X(l)_{M-2}+(t-l),\sum_{i=0}^{M-2} X(t)_i=\sum_{i=0}^{M-2} X(l)_i+(t-l)\)

である.

[2] \(t\leq l\) のとき

上と同様の議論によって以下が成り立つ.

  • \(X(t)_{M-2}=X(l)_{M-2},\sum_{i=0}^{M-2} X(t)_i=\sum_{i=0}^{M-2} X(l)_i+(t-l)\)

[3] \(t\geq r\) のとき

上と同様の議論によって以下が成り立つ.

  • \(X(t)_{M-2}=X(r)_{M-2},\sum_{i=0}^{M-2} X(t)_i=\sum_{i=0}^{M-2} X(r)_i\)

\(S(t)=\sum_{i=0}^{M-2} X(t)_i, L(t)=X(t)_{M-2}\) として,これらをまとめるとい以下のようになる.

[1] \(M\) が奇数のとき

  • \(t\lt l\) のとき:\(L(t+1)=L(t),S(t+1)=S(t)+1\)
  • \(l\leq t\lt r\) のとき:\(L(t+1)=L(t)-1,,S(t+1)=S(t)\)
  • \(r\leq t\) のとき:\(L(t+1)=L(t),S(t+1)=S(t)\)
  • これらをまとめると \(S(t)=\min(S(0)+t,S(l)),X(t)_{M-1}=\min(a,b-t,\min(L(l),\max(L(l)-(t-l),L(r))))\) となり,\(S(t)+L(t)=\min(t+p,q,-t+r)\) となることが場合分けによって確認できる.

[2] \(M\) が偶数のとき

  • \(t\lt l\) のとき:\(L(t+1)=L(t),S(t+1)=S(t)+1\)
  • \(l\leq t\lt r\) のとき:\(L(t+1)=L(t)+1,,S(t+1)=S(t)+1\)
  • \(r\leq t\) のとき:\(L(t+1)=L(t),S(t+1)=S(t)\)
  • これらをまとめると \(S(t)=\min(S(0)+t,S(r)),X(t)_{M-1}=\min(a,b-t,\min(L(r),\max(L(l)+(t-l),L(l))))\) となり,\(S(t)+L(t)=\min(t+p,q,-t+r)\) となることが場合分けによって確認できる.

posted:
last update: