Quiz
https://yukicoder.me/problems/no/872
AC
https://yukicoder.me/submissions/404193
解法
- まずはganariyaさんの解説を読みましょう
- そこに書かれている通り、あるエッジを使う回数は「エッジの向こう側」x「エッジのこちら側」
- dfsで「エッジの向こう側」の数が求められればよい
// i以降のノード数を返す // (iも含む) ll dfs(ll i, ll prev){ ll sum = 0; for(auto edge : G[i]){ if(edge.to==prev) continue; sum += dfs(edge.to, i); } ll a = sum+1; ll b = N-a; ll d = dist2(i, prev); ans += a*b*d; return sum+1; }
その他
- タイトルをgooglability高い感じにした
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (36件) を見る