AGC029

https://atcoder.jp/contests/agc029/tasks

冷えました…

A
結局はWを動かす操作です。
B
面白い。1,2,3,....2^30のグラフを考えると、明らかに木です。問題のグラフは明らかにこのグラフの部分グラフなので森です。
あとはgreedyに取っていけばいいです。ただし2^nは注意。
C
重めのO(NlogNlogmaxA)書いたら落ちてかなしい。ちゃんとO(NlogmaxA)にしてAC。てか最初からstackで良いことにきづけないの良くない。
D
めっちゃ解かれてて焦ったけど誤読してた。高橋くんは常に動かさないといけなくて、青木くんはブロック上に来たら横移動をやめます。
E
1を根とした木の上に行きたい気分なので、後はsimulationすれば解けるかなあとは思いました。
F
全然つっかえなかったので成長だと思う。うまく問題を分析して妥当な予想を立てながら解けてキモチイ。

頂点vを取る操作はだいたい点集合からvを削除する操作に言い換えられます。(細かい条件はあるが)
全ての点集合について一つ点を削除することができれば成功で、これは二部マッチング問題です。