AtCoder Beginner Contest 288 F問題 Integer Division
問題
提出解答
問題の概要
進表記において, 桁の整数 が与えられる. の全ての桁は ではない.
の部分集合 に対して, を次のように定める.
- を長さ の文字列とみなす. となる全ての に対して, の 文字目の 文字目に区切りを入れ, を の文字列に分解する.
- その後, 個の文字列それぞれに対して, その文字列を 進表記された整数とみなしたとき, をその 個の整数の総積と定義する.
としては 個考えられるが, それにおける の総和を求めよ.
制約
- は 進表記で全ての桁は ではない.
解法
の上から 桁目を と書く.
動的計画法で解く. に対して, で の先頭 桁に限定した時の答えとする. また, で の上から 桁目から 桁目を 進表記とみたときの整数とする. ただし, のときは とする.
のときは である.
のとき, 区切りを入れるか入れないか, 入れるとしたらも最も左の位置はどこかで場合分けをすることにより,
となるが, 式変形によって, における下 桁は全て であるので,
となる. よって,
とする.
以上から,
と計算していくことで, が求めるべき解答であり, 時間で求めることができた.