ICPC2014国内予選
結論
落ちました。来年は全完できるようにがんばります。
解いた問題
B問題
シミュレーションするだけ。
行ごとに消去されるブロックをチェックして消したあと、列ごとに下からブロックを積みなおす、という作業を繰り返すだけ。
E問題
木DPっぽさがあるが、すこし考えると直径を求めておしまい。
元のグラフGからリーフを切り取ったグラフG'を考えれば、答えは「Gの全長 + G'の全長 × 2 - G'の直径」で、あとは O(n) なコードを書くだけ。 ちなみにこれは、グラフG'上での直径を実現する端点S,Tを考えれば、Sから作業を始めてTで作業を終えるときの最小コストに等しくなる。