スコアを最大化する X について考える.ある整数 a を十進法表記したとき a=a1a2⋯a2021 と表せるとする. さらに bi=9−ai とすれば,a∈X となるための必要十分条件は ⊕ を排他的論理和として
b1⊕b2⊕⋯⊕b2021=0(1)
となることを示す.スコアの定義より,S の元を大きい方から順に見て,X の元となり得るものを貪欲に選択していくのが最善である.したがって,a>k での同値性を仮定し,a=k で成立を示せばよい.
k が (1) をみたすとき,k とちょうど 2020 桁が一致する数は,(1) の左辺において k から一文字のみが変化するから,(1) をみたさない.仮定よりそのような数は X に含まれないから,k∈X である.
逆に k が (1) をみたさないとき,(1) の左辺の値を二進法で表したときに,1 となる桁の中で最も位の大きなものをとれる.bi の中から同じ桁が 1 となるものを一つ任意にとり,(1) が成立するような bi′ に変更してできた数を a′ とすれば,bi>bi′ より a<a′ で,さらに a′∈X であるから,a∈/X が従う.
したがって,以下 (1) をみたす組 (b1,…,b2021) を数え上げればよい. b1,…,b2021 の中で 8 の位が 0 であるものが存在するから,その中で最も添字の大きいもので 1,2,4 の位を調整することを考えれば,求める値は
∣X∣=n=0∑1010(2021C2n×82021−2n−1×22n)=22017×2n=0∑1010(2021C2n×42021−2n)=22017((4+1)2021+(4−1)2021)=22017(52021+32021)
Fermatの小定理などよりこれを 1009 で割った余りは 682 である.
解説YouTubeが存在しません.