| For All Solvers
OMCE011

OMCE011(B) - a_i=1,2,3を満たす項数を考える

ユーザー解説 by Tempurabc

 問題文の箇条書きの条件を,上から順に条件 1,条件 2,条件 3,条件 4 と呼ぶことにする.
 数列 {an}\{ a_n \} に対して,ai=1a_i=1 を満たす項数が xxai=2a_i=2 を満たす項数が yyai=3a_i=3 を満たす項数が zz であるとしよう.このとき条件 1 から (ai,ai+1)=(1,2)(a_i, a_{i+1})=(1,2) となるものは (x132)(x-132) 個存在し,一方で条件 3 から (x132)+321=y(x-132)+321=y なので,y=x+189y=x+189 を得る.同様にして z=x+108z=x+108 であり,n=3x+297n=3x+297 である.
 次に,残された条件 4 を用いたい.先ほどの議論から,

  • (ai,ai+1)=(1,2)(a_i, a_{i+1})=(1, 2) となるものがちょうど (x132)(x-132)
  • (ai,ai+1)=(2,3)(a_i, a_{i+1})=(2, 3) となるものがちょうど (x24)(x-24)

ずつ存在することがわかっている.
 明らかに min(x132,x24)=x132123\min(x-132, x-24)=x-132 \geq 123 である.よって x255x \geq 255 を得る.
 次に xx の最大値を考えよう.(ai,ai+1,ai+2)=(1,2,1)(a_i, a_{i+1}, a_{i+2})=(1, 2, 1) となるものの個数を tt と置くと,x132=t+123x-132=t+123 である.t213t \leq 213 なので,x468x \leq 468 である.
 あとはそのような数列の構成ができればよいが,123211 \to 2 \to 3 \to 2 \to 1 のループを 123123 回して,あと必要な回数だけ 1211 \to 2 \to 1 の往復,2322 \to 3 \to 2 の往復,1311 \to 3 \to 1 の往復,13211 \to 3 \to 2 \to 1 のループをさせれば,任意の 255x468255 \leq x \leq 468 を満たす xx に対して,数列 {an}\{ a_n \} を構成できる.
 よって求めるべき値は x=255468(3x+297)=295641\sum_{x=255}^{468} (3x+297)=\mathbf{295641}