| For All Solvers
OMC079

OMC079(D)

ユーザー解説 by AT_0105

 他の問題のwriterだったので,writer権限でtesterもやっていたのですが,そのときに思いついた解法を紹介します.


 便宜上,00 も増加的な数とする.以下のように定義する:

  • 集合 A,BA,B に対して,AA の要素であるが,BB の要素でないもの全体の集合を ABA\setminus B と表す.
  • 有限集合 CC に対して,CC の持つ元の個数を C\lvert C\rvert と表し,その C\lvert C\rvert 個の元の総和を S(C)S(C) と表す.
  • K=1,2,,9K=1,2,\ldots,9 に対して,集合 ZKZ_{K}11 の位が KK 以下である増加的な数全体で定める.

 いま,増加的な数は集合 {1,2,,9} \lbrace 1,2,\ldots,9 \rbrace の部分集合と一対一に対応することから,ZK=2K\lvert Z_{K}\rvert =2^K である.さらに,定義より,99 以下の正の整数 a,ba,b に対して,a<b    ZaZba \lt b \iff Z_{a}\subset Z_{b} が成立することに留意せよ.いま求めたいものは S(Z9)S(Z_{9}) と表せる.
 K2K \geq 2 を固定して集合 ZKZK1Z_{K}\setminus Z_{K-1} の元 MM について考察してみよう.MM は増加的な数であるから,MM の末尾 11 桁を取り除いた数 MK10\dfrac{M-K}{10} も増加的な数であり,その 11 の位は K1K-1 以下であるので,MK10ZK1\dfrac{M-K}{10} \in Z_{K-1} である.ZKZK1=ZK1\lvert Z_{K}\setminus Z_{K-1}\rvert=\lvert Z_{K-1}\rvert であることより,MK10\dfrac{M-K}{10} として考えられる数全体の集合が ZK1Z_{K-1} と一致するので, S(ZKZK1)=10S(ZK1)+KZK1=10S(ZK1)+K2K1S(Z_{K}\setminus Z_{K-1})=10S(Z_{K-1})+K\lvert Z_{K-1}\rvert=10S(Z_{K-1})+K2^{K-1} である.このことから,S(ZK)=11S(ZK1)+K2K1S(Z_{K})=11S(Z_{K-1})+K2^{K-1} がわかる.S(Z1)=1S(Z_{1})=1 であるから,得られた式を繰り返し用いて計算することで(筆者はここでOMC電卓を用いた),S(Z9)=320214537S(Z_{9})=\bm{320214537} であることがわかる.


【補足1】ここで得られた S(ZK)=11S(ZK1)+K2K1S(Z_{K})=11S(Z_{K-1})+K2^{K-1} という漸化式を解いて KK に対する一般項を得ることもできるが,sum(Z9)sum(Z_{9}) を求められさえすればそれでいい本題では,それをする旨味はほとんどない.

【補足2】提出するべき値は,123456789×511<109×103=1012123456789×511 \lt 10^9×10^3=10^{12} より 101210^{12} 未満であるので,OMC電卓であれば余裕をもって表示することができる.したがってOMC電卓を用いて 511511 個の整数を足し合わせることでも正解を得られるはずである.