0.はじめに
毎回言ってる気はしますが、AB問題でも歯ごたえが出すぎた気がしています。
難しくなっているのか、私のPG力が落ちているのか・・・。
なんとかABCまではACとなりましたが、レートは-7
まぁ、ということは私のPG力が衰えているんでしょうね・・・。
というよりは参加者のレベルが上がっているのか。
地道に正解できなかった問題の解き方を確認していくしかないですね。
1.A - Full Moon
計算でも一発で出せそうな気もしましたが
普通にwhileで回して答えを求めました。
現時点の日付を変数nowにもち、まずはnowにMを入れる。
満月を見た回数を変数ansにもつ(初期値0)
以下をループ
nowがN以下の時
-期限内に満月が見れたとしてansに1加算、nowにPを加算
nowがNより大きい時
-ループを抜ける
最後にansを出力して終了
https://atcoder.jp/contests/abc318/submissions/45132684
2.B - Overlapping sheets
いもす法で解けそうな問題。
うろ覚えで仮組しましたが、うまくいかず、”競技プログラミングの鉄則”を
見返し、2.4を見ながら作り直したところAC.
持っててよかった、”競技プログラミングの鉄則”。
https://atcoder.jp/contests/abc318/submissions/45161365
3.C - Blue Spring
青春18きっぷとか懐かしいなと思いつつ挑戦。
いろいろ考え方はありそうでしたが、リストFを大きい順に並びなおし
先頭から、D日分ずつの合計と、Pを比べ、Pの方が小さいときは
そのD日間は周遊パスをつかう。
D日分の合計の方が大きければ以降は通常料金で電車に乗るとします。
注意点は、最後のD日分が、余った場合(例題3)ですが
そこは、余った日数分の合計とPを比べて同様に処理します。
結構てこずりましたが、終わってまとめると簡単な問題ですね・・・。
https://atcoder.jp/contests/abc318/submissions/45183963
4.D - General Weighted Max Matching
試験中は、取り組めるタイミングで@20分となっていて
諦めました。
その後解説読んでも今一でしたが、別解を読んでなるほど。と
なり、参考に・・・というよりほぼ丸パクリでACを取りつつ
解き方を学びました。
https://atcoder.jp/contests/abc318/submissions/45207342
以上