Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Mar 18, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/22106

🧭 풀이 시간

35분

👀 체감 난이도

✏️ 문제 설명

초기에 정점이 하나뿐인 트리 $T$가 있다.
여기에 두 종류의 작업을 할 수 있다.

  1. $T$에서 간선 하나를 골라서 없애고, 나눠진 두 트리 중 하나만을 남겨둔다.
  2. $T$에서 차수가 1인 점 $u$를 아무거나 하나 고르고, 새로운 정점 두 개를 추가해 $u$와 간선으로 이어준다.

만들고자 하는 트리 $S$가 주어지면, 초기 $T$에 작업을 수행해야 하는 최소 횟수를 구해보자. (단, 못 만든다면 -1)

🔍 풀이 방법

[사용한 알고리즘]

  • 차수열
  • DFS

1번 작업으로는 정점의 차수가 그대로이거나 1 줄어들게 된다.
2번 작업으로는 정점의 차수가 최대 3이 된다.
=> 만들고자 하는 트리 $S$에서 차수가 4 이상인 정점이 있다면, 답은 무조건 -1이다.

그게 아니면, 차수가 2인 점 아무거나 하나를 초기 $T$로 둔 뒤에 작업 횟수를 DFS로 구해주면 된다.

⏳ 회고

차수가 2인 점을 아무거나 하나 골라도 최소 횟수가 나온다는 건 증명을 못했다...

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Mar 18, 2025
@ShinHeeEul ShinHeeEul merged commit a5f7c66 into main Mar 18, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants