DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

Spliting a tree

問題に戻る

解説

정점 vvv의 차수를 deg⁡(v)\deg(v)deg(v)라고 하자.

deg⁡(v)≥2\deg(v) \geq 2deg(v)≥2라면 답은 000이다. vvv 하나를 제거하면 vvv에 연결되어 있던 각 방향이 서로 다른 연결 컴포넌트가 되므로, 정확히 deg⁡(v)\deg(v)deg(v)개의 연결 컴포넌트가 남는다.

이제 vvv가 리프라고 하자. vvv에서 가장 가까운 차수가 333 이상인 정점을 bbb라고 하고, vvv와 bbb 사이의 거리를 dd라고 하자.

k<dk<dk<d일 때 제거되는 정점들은 vvv에서 시작하는 하나의 단순 경로를 이룬다. 이 경로의 끝에 도달하기 전까지 차수가 333 이상인 정점이 없으므로, 남은 그래프는 연결되어 있거나 비어 있다. 따라서 연결 컴포넌트가 222개 이상이 될 수 없다.

k=dk=dk=d이면 bbb도 제거된다. bbb에서 vvv 방향으로 향하는 간선을 제외해도 bbb에는 적어도 두 개의 다른 방향이 있다. 이 방향들은 bbb를 제거한 뒤 서로 다른 연결 컴포넌트가 된다. 따라서 리프 의 답은 이다.

차수가 333 이상인 정점이 트리에 하나도 없다면 트리는 하나의 경로이다. 경로의 리프를 중심으로 어떤 반지름의 정점들을 제거해도 남은 그래프는 하나의 경로이거나 빈 그래프이므로 답은 −1-1−1이다. N=1N=1N=1인 경우도 같은 이유로 답은 −1-1−1이다.

따라서 다음과 같이 답을 정리할 수 있다.

  • 차수가 222 이상인 정점의 답은 000이다.
  • 리프의 답은 가장 가까운 차수가 333 이상인 정점까지의 거리이다. 그러한 정점이 없으면 −1-1−1이다.
  • 차수가 000인 정점의 답은 −1-1−1이다.

차수가 333 이상인 모든 정점을 시작점으로 하는 다중 시작점 BFS를 수행하면, 각 정점에서 가장 가까운 이러한 정점까지의 거리를 한 번에 구할 수 있다.

시간 복잡도는 O(N)O(N)O(N)이고, 메모리 복잡도는 O(N)O(N)O(N)이다.

d
vvv
ddd