Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

ユニークビジョンプログラミングコンテスト2023 秋 (AtCoder Beginner Contest 323)

4完

各問題

A - Weak Beats

偶数番目に 1 がひとつでもあれば "No" でそうでない場合 "Yes" です。

B - Round-Robin Tournament

vector<pair<int, int>> で、「勝ち数にマイナスをつけたもの、プレイヤーの番号」を管理して、昇順にソートすれば、勝ち数の降順 -> プレイヤーの番号の昇順に並びます。

C - World Tour Finals

各選手についてまだ解いていない問題を点数の高いほうから解いて何問解けば最高点を上回れるかどうかチェックします。

vector<pair<int, int>> で、「問題の得点、問題の番号」を降順にソートすれば、どの問題から解くのが高いかわかるようになります。

D - Merge Slimes

スライムの数を二進表記すると、最終的にどのサイズのスライムが何匹いるかわかります。

例えばサイズXのスライムが4匹いる場合、100 なので 4X のスライムが1匹、7匹いる場合、111 なので Xが1、2Xが1、4Xが1という要領です。

これを小さいほうからやっていけばよいです。

E - Playlist

確率でDPをします。

自分は何通りあるかでDPしようとして爆死しました...。

まとめ

なんで確率DPに気づけないのか...。まあ D まですんなり解けて水パフォはキープできたのでよしとするか。