ARC030 B ツリーグラフ
最後に頂点Xに戻らなければならないので, すべての辺について使うなら2回通るということがわかる. また, 通るべきは次の頂点の部分木に宝石が存在している辺であるということもわかる.
よって部分木に宝石が存在しているかをDFSで求めていけばよい. そして存在するならば辺ごとに答えに2を加えていけばよい.
実装例:
https://atcoder.jp/contests/arc030/submissions/20371201