
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【競技プログラミング】重心分解を25行で書く方法 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【競技プログラミング】重心分解を25行で書く方法 - Qiita
#はじめに 重心分解は25行程度でかけます (わかりやすい様にコメント付加してたら30行程度になってしま... #はじめに 重心分解は25行程度でかけます (わかりやすい様にコメント付加してたら30行程度になってしまいました) ポイントは重心分解によって出来る木をBFSでなくDFSで潜ることです!!! constexpr int MAX_SZ=1<<20; array<vector<int>,MAX_SZ>g;//元の木の隣接リスト array<int,MAX_SZ>used;//重心が確定したか vector<int>v;//重心分解後の木のDFS順の列 array<vector<int>,MAX_SZ>ch;//重心分解後の木の親子関係 int s;//重心分解後の木の根 int dfs(int n,int p,int sz,int root){ constexpr int inf=MAX_SZ*2; if(used[n])return 0; bool b=1; int res=1; for(a