만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

나무꾼의 마을

시간 제한3초메모리 제한1024 MB

요약
트리의 마을 중 총독을 둘 곳을 정하고, 각 구역에서 조선소와 목재 공급 마을을 골라 건조하는 배의 최대 합을 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법
정답자
아직 제출이 없습니다

문제

미드가르드에는 nn개의 마을이 도로망으로 연결되어 있다. 도로는 n−1n-1개이며, 이 도로들을 따라 어느 마을에서든 다른 모든 마을로 갈 수 있다. 즉 도로망은 트리이다. 1번 마을이 수도이다. 미드가르드 사람들은 나무를 많이 베어 배를 만든다. 통치자는 올해 큰 함대를 건조해 새로운 땅과 자원을 정복하려고 한다. 이를 위해 다음 전략을 쓴다.

  • 몇몇 마을에 총독을 보낸다. 총독을 보낸 마을에서 수도까지의 단순 경로 위에는 총독을 보낸 다른 마을이 없어야 한다. 수도에 총독을 보낼 수는 있지만, 그 경우 다른 어떤 마을에도 총독을 보낼 수 없다.
  • 마을 vv의 총독은 vv를 지나 수도까지 가는 단순 경로를 가진 모든 마을을 관할한다. 마을 vv 자신도 포함된다.
  • 총독의 관할에 들지 않은 마을 ii는 한 해 동안 배를 aia_i척 만든다.
  • 마을 vv에 총독이 있으면 다음과 같이 행동한다.
    • 관할 마을 중 vv와 이웃한 마을들의 부분집합 WW를 고른다. 그 마을들에 대형 조선소를 짓는다. 마을 ii에 조선소를 지으려면 다른 마을 bib_i개에서 나무를 공급받아야 하며, 그 조선소는 한 해 동안 배를 cic_i척 만든다.
    • 그다음 관할 마을 중 나머지에서 정확히 ∑u∈Wbu\sum_{u \in W} b_u개를 골라 나무를 공급하게 한다. 각 마을이 어느 조선소에 나무를 보내는지는 상관없다.
    • 조선소가 지어진 마을 ii는 한 해 동안 배를 cic_i척 만든다.
    • 나무를 공급하는 마을은 배를 만들지 않는다.
    • 관할 아래 있는 그 밖의 마을은 총독의 관할이 없을 때와 같이 배를 aia_i척 만든다.

통치자는 총독을 원하는 만큼 보낼 수 있다. 총독들이 최적으로 행동한다고 할 때, 모든 마을이 한 해 동안 합쳐서 만들 수 있는 배의 최대 개수를 구하라.

입력

첫 줄에 테스트 케이스의 수 tt가 주어진다 (1≤t≤5 0001 \le t \le 5\,000). 각 테스트 케이스는 다음과 같이 주어진다.

첫 줄에 마을의 수 nn이 주어진다 (1≤n≤50001 \le n \le 5000).

다음 nn줄에는 정수 aia_i, bib_i, cic_i가 주어진다. aia_i는 마을 ii가 총독의 관할에 들지 않을 때 한 해 동안 만드는 배의 수이다. bib_i는 마을 ii에 조선소를 지을 때 나무를 공급해야 하는 다른 마을의 수이다. cic_i는 그곳에 조선소가 지어졌을 때 마을 ii가 한 해 동안 만드는 배의 수이다 (1≤ai,ci≤1091 \le a_i, c_i \le 10^9; 1≤bi≤n1 \le b_i \le n).

다음 n−1n-1줄에는 도로로 직접 연결된 두 마을의 번호 viv_i, uiu_i가 주어진다. 도로망이 트리임이 보장된다.

모든 테스트 케이스의 nn 합은 5000을 넘지 않는다.

출력

각 테스트 케이스마다 총독을 최적으로 배치했을 때 모든 마을이 한 해 동안 합쳐서 만들 수 있는 배의 최대 개수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3
    3
    1 1 10
    1 1 9
    5 1 11
    1 2
    2 3
    4
    2 4 9
    2 2 6
    1 4 7
    4 4 8
    1 2
    2 3
    1 4
    7
    3 1 10
    2 4 6
    3 2 8
    2 3 4
    1 1 9
    2 1 6
    1 2 4
    1 2
    2 3
    3 4
    2 5
    5 6
    5 7
    
    예상 출력
    14
    10
    22