Maximum-Cup 2018:D - Many Go Round
問題
https://atcoder.jp/contests/maximum-cup-2018/tasks/maximum_cup_2018_d
考え方
部分和問題に帰着する。 のうちいくつか選んだときにその和の
が
に等しくなれば良い。
上で考えればよいので DP を回す最大値は
未満まででよい。
そのとき以下のように DP を定義する。
番目まで見たときの
にいるときの最小回数
DPの初期値は の場合に
で、DP遷移は
となる。
Submission #3910219 - Maximum-Cup 2018
どこに着目して考察するべきだったか
で考えて良いので、DPを回す最大値は
未満でよかった。
何がバグっていたか
ビット上で考えうる部分和を列挙したのち、 なる
ビット目がたっている場合には
YES
そうでない場合は NO
と考えたが、その場合は (たぶんビット演算が重くて) TLE した。
Submission #3909990 - Maximum-Cup 2018
得た知見
mod M 上の最大値は M-1