AOJ2321 Butterfly
問題概要
個の用事があり、 個目の用事は時間が 区間拘束され、 個目の区間は 時から 時である。また 個目の用事をすると満足度が 得られる。
時間がかぶらないように行う用事を決めるとき、得られる満足度の最大値を求めよ。
制約
解法
制約から、時間は16個しかないので
dp[i][j] := i個目の用事までするかしないか決めたときに拘束される時間がjの状態のときに得られる最大の満足度
とするbitDPをすると、状態は 個しかないので間に合う。
入力で 個目の用事の区間を受け取るときに、bitに変換しておく( 時から 時まで拘束されるときに ビット目を1にする)と、遷移できるかどうかは&をとればわかるので楽になる。