Twitter(今もTwitter)*1でこんなことを言っていました。
私、丸紅コン終わったら毎日精進鯖みたいなことします(鬼畜)
— はるく@競プロ (@halc_kyopro) 2023年9月20日
1日1問もDiffが自らのレート以上の問題が解けていなかった場合爆発することにします(え?)
ちなみにレートが変わる日は変わる前のレートで考えます
少し早いですが始めます。
毎日格上の問題を倒すやつの記念すべき1日目です。
一体いつまで続けることができるのでしょうか…*2
問題リンク
問題概要
宝石が 個あって、 番目の宝石の価値は だよ。(これは負になることもあるよ)
好きな数の倍数番目の宝石をすべて破壊するハンマー*3を適切に使うことで、残った宝石の価値の総和を最大化してね。
解法
燃やして埋めましょう。*4
「残す宝石」「壊す宝石」のグループに分けることを考えます。
あとで最小カットを適用することを考えると、負のコストを作ってはいけないので、以下のようにしてすべて正のコストにしておきます。
- の場合、先に報酬をもらっておいて、残すならコスト 、壊すならコスト
- の場合、残すならコスト 、壊すならコスト
ところで、宝石 を壊したい場合、 の倍数の宝石をすべて壊す必要があります。
そのため、この条件を満たさなかった場合、末代まで呪われることにします。*5
ここに風呂を流せば最大フローがそのまま最小コストになるので、先にもらった報酬からこれを引くと答えが求められます。
提出コード
感想
橙問題の割にそこそこ典型な問題でした。
お風呂最強!*7