ABC142 E - Get Everything
解法
制約がbitDPをしろと言っているので、bitDPをします。
現在開けた宝箱の状態がのときに、そこからかかる費用の最小値
とします。
を整数型の変数1つで表し、2進数の桁に宝を割り振り、0:まだ開いていない、1:開いている、とすると
初期値はで、答えはです。
を求めることについて考えると、
状態がの際に番目の鍵を使うと、 (ただし、は番目の鍵を使用して開けることのできる宝箱の集合)
となります。
鍵は種類あり、これを全部試せばよく、
となります。のパターンは注意する必要があり、スルーしなければなりません。
あとはこれを繰り返せば答えが求まります。
なのですが、を前計算してあげるとになります(自分は前計算してないです)
感想
久々にbitDPを見た気がします…
やっぱりbitDPに関しては再帰で書くのが個人的には好きです