F はすぐ解けたんだけど,E で詰まりに詰まった...
A - Discount
が答え.
B - Play Snuke
が答え.
1 行で書いてみた (Python).
print(min(p for _, p, _ in L) if (L := [*filter(lambda t: t[0] < t[2], ([*map(int, input().split())] for _ in range(int(input()))))]) else -1)
C - Unexpressed
より, を満たす は高々 である.また, を固定すると, を満たす は高々 である.
従って,, , を満たす , の全探索は 時間で可能である.
注意しないといけないのは のような重複を除く必要があるという点で,これは既に現れた値を集合型で管理すれば可能である.
D - Poker
スコア計算式はハリボテで,その実は #
の中身を全通り試して確率を計算する問題.実装が面倒.
既に確認されている 枚のカードを除いた 枚からランダムに残りの 枚を引くと考える. 枚のカードのうち, が書かれたカードの枚数を とすると,高橋君が ,青木君が を引く確率 は次のように表される.
引いた , を加味したスコアを計算し,高橋君の方が高ければ を答えに加算すればよい.
E - Oversleeping
時刻 に高橋君が降車に成功することと,次の 2 つが成り立つことは同値である.
制約をよく見るとそれぞれの区間長が小さいので,全探索ができる.つまり,, と決め打って以下のような連立合同式へと変換する.
連立合同式を満たす最小の非負整数は中国剰余定理を用いて求められる.
F - Zebraness
令和 ABC でフローが出題されたのは初めて?
二値変数がいくつかあって,その関係によって変化するコストを最小化する問題はグラフの最小カットに帰着できる場合がある (燃やす埋める).
今回の問題では,下図のような辺の張り方をすればよい.ただし,u と v は隣接する ?
マスである.