AGC034-C Tests
解法
重要な考察がいくつかある
- すべてのテストの重要度は のどちらかである。これは、 どんな場合でも損失を最小化/得を最大化するのはこの2つの値のどちらかになるからである。
- 時間勉強するとき、その内訳は、重要度が で 時間勉強する教科、重要度が で 時間勉強する教科、残りの余った時間を使うテスト1つ、となる。これは、重要度が決まっているとき、重要度の高い方から貪欲に勉強するのが得で、かつ 時間勉強するならその重要度は であり、そうでなければその重要度は である場合が最適だからである。
これらを踏まえて、次のような解法を取れる。
- 総勉強時間を二分探索する。
- 余った時間を使うテストを全探索する。このテストの重要度は貪欲に決められる。
- 時間勉強する教科を、全体での得が大きいように貪欲に取る。これはならし 時間で行える。
時間計算量は となり、間に合う。
感想
貪欲法と二分探索、考察が適度に組み合わさったよい問題だと思った。