Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 10, 2025

🧷 문제 링크

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

🧭 풀이 시간

40분

👀 체감 난이도

✏️ 문제 설명

루트가 1인 트리가 있고, 각 점 $i$$c[i]$라는 값을 가진다.

어떤 두 점 $u, v$에 대해, 서로 조상-자식의 관계가 아니라면, 둘은 논쟁을 할 수 있다.
이 때 intensity값은 $c[u] + c[v]$이다.

트리의 tension이란, 존재하는 argument의 intensity의 합이다.

각 점 $i$는 다음 조건을 만족할 때 매니저라고 불린다.

  • 자신 아래에 존재하는 모든 점이 각각 논쟁을 한 번 이상 진행했을 경우

모든 점이 매니저일 때, 가능한 tension의 최솟값을 구해보자.

🔍 풀이 방법

어떤 점 $i$에 대해, $i$ 아래에 존재하는 점들을 한 번씩 논쟁시켜야 하는데, 서로 조상-자식의 관계면 논쟁할 수 없다.
-> 당연히 $i$의 자식들을 각각 루트로 하는 서브트리에서 하나씩 꺼내서 논쟁시키는 것이 이득이다.

이 때, 자식들 서브트리의 크기를 큰 순서대로 $cnt_1, cnt_2, \cdots, cnt_k$라고 할 때, $cnt_1$이 나머지 $cnt$의 합보다 작거나 같으면, 그냥 $i$ 서브트리의 합과 동일하거나, 개수가 홀수면 최솟값 한 번만 더해주면 된다.

$cnt_1$이 나머지들의 개수보다 많으면, 넘치는 수만큼 $cnt_1$에 속하지 않은 최솟값을 더해주면 된다.

⏳ 회고

영어 지문이라 문제를 이해하는 데만 20분이 걸렸다.

@ShinHeeEul ShinHeeEul merged commit 1c20def into main Feb 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants