全国統一プログラミング王決定戦予選/NIKKEI Programming Contest 2019:E - Weights on Vertices and Edges

問題

https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_e

考え方

連結成分について連結した状態から、除々に辺を切断して非連結にしていきたい。UnionFindは頂点の連結しかできないがどうするか?という問題である。

逆に非連結の状態から除々に辺で連結されていき、連結成分の頂点の重みの合計が辺の重み以上になっている場合には、連結成分で使われている辺はすべて削除不要な辺である。このようにして小さい重みの辺から除々に考えていくと自然に解を求めることができる。

Submission #4179875 - 全国統一プログラミング王決定戦予選/NIKKEI Programming Contest 2019

どこに着目して考察するべきだったか

操作の逆を考えて、徐々に辺で連結させていく操作を考えると自然に解ける

何がバグっていたか

得た知見(典型ポイント)

  • 操作の逆を考える(連結から非連結にする)

類題