アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC447F - Centipede Graph

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

木であるためループは存在しない。
つまり、次数が4以上(両端だけ3以上)の頂点のみで構成されたパスの中で最長のものを探せばよい。
これは、以下の方法で処理できる。

まず、頂点数3Nの森を用意し、
  • 次数2の頂点を少なくとも片端にもつ辺は削除する
  • 次数3の頂点を使う場合、3回でi番、i+N番、i+2N番に1回ずつつなぐ
  • 次数4以上の頂点を使う場合、全て同じi番につなぐ
という形でもとの木を作り直す。
そして、できた森の各木の直径※を調べ、その最大値を答えとする。

解答例


注意点


別解

最近更新されたスレッド
ウィキ募集バナー