AtCoder Beginner Contest 262 D問題 I Hate Non-integer Number
問題
提出解答
問題の概要
長さ の非負整数列 が与えられる. から 個以上の項を選ぶ方法のうち, それらの平均が整数であるような選び方の数を求めよ.
制約
解法
以下は全て同値である. ただし, とする.
- 個の整数 の平均が整数
- 個の整数 の総和が の倍数
従って, 次の小問題を に対して解くことになる.
の項からちょうど 個選ぶ方法のうち, 和が の倍数であるような選び方の数を求めよ.
動的計画法で解くことにする. で第 項目まで見たとき, それまでに 個選んで, 和が で割ると になるような選び方の数とする.
ベースケースは のときで
である.
更新式は第 項目を採用するかしないかで場合分けすることにより,
となる.
このとき, 小問題の答えは である. 従って, 全体の答えは
である. 更新式が 時間で, 要素数が であるから, この問題を で解くことができた.