KK국지

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

요약
가중치가 있는 트리를 연결된 여러 국가로 나누되 각 국가의 전투력 합이 U를 넘지 않게 하고, 모든 국가에 대해 (U 빼기 국가 전투력)의 제곱 합을 최소로 만든다.
난이도

어려움10점 중 8점

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

문제

당신은 세계적으로 인기 있는 전쟁 시뮬레이션 게임 shake!를 플레이하고 있다. 게임 내에는 11번부터 NN번까지 번호가 매겨져 있는 NN개의 도시가 있으며 각 도시는 전투력을 가진다. 또한, 서로 다른 두 도시를 양방향으로 잇는 N−1N-1개의 도로가 있으며 도로를 따라 임의의 도시 간 이동이 가능하다.

당신은 여러 국가를 건국하여 전쟁 시뮬레이션을 진행하려고 한다. 각 국가는 적어도 하나의 도시를 포함해야 하며 각 도시는 정확히 하나의 국가에 포함되어야 한다. 또한, 다른 국가의 도시를 거치지 않으면서 도로를 따라 국가 내 임의의 도시 간 이동이 가능해야 한다.

어떤 국가가 지나치게 강력하여 전쟁에서 쉽게 승리하면 게임의 재미가 떨어지므로 전투력을 균형 있게 분배하는 것이 중요하다. 국가의 전투력은 국가에 포함된 모든 도시의 전투력의 합으로 정의된다. 고민 끝에 당신은 전투력 상한 UU를 정하여 각 국가의 전투력이 UU를 넘지 않고, k(1≤k≤N)k (1\leq k \leq N)개의 국가를 건국하여 각 국가의 전투력을 w_1,w_2,…,w_kw\_{1}, w\_{2}, \dots, w\_{k}라 할 때, ∑_i=1k(U−w_i)2\sum\_{i=1}^{k} (U-w\_{i})^2을 최소로 하는 것이 전투력을 균형 있게 분배하는 방법이라고 결론지었다. 국가의 전투력을 균형 있게 분배하시오.

입력

첫 번째 줄에 도시의 수 NN이 주어진다. (1≤N≤10,000)(1\leq N \leq 10\\,000)

두 번째 줄부터 NN개의 줄에 걸쳐, ii번 도시의 전투력인 정수 c_ic\_i가 주어진다. (1≤c_i≤100)(1\leq c\_{i} \leq 100)

그다음 줄부터 N−1N-1개의 줄에 걸쳐 도로의 정보가 주어진다. 각 줄에 각 도로가 잇는 두 도시의 번호가 공백으로 구분되어 주어진다.

그다음 줄에 국가의 전투력 상한인 정수 UU가 주어진다. (max⁡_1≤i≤Nc_i≤U≤100)(\max\_{1\leq i \leq N} c\_i \leq U \leq 100)

출력

∑_i=1k(U−w_i)2\sum\_{i=1}^{k} (U-w\_{i})^2의 최솟값을 출력한다.

예제3

  1. 예제 1

    입력
    10
    3
    2
    1
    1
    6
    3
    2
    1
    2
    2
    2 9
    10 4
    5 1
    3 7
    6 9
    7 2
    9 1
    2 10
    8 2
    10
    
    예상 출력
    21
    
  2. 예제 2

    입력
    4
    2
    2
    2
    2
    1 3
    3 2
    4 3
    3
    
    예상 출력
    4
    
  3. 예제 3

    입력
    4
    2
    2
    2
    2
    1 3
    3 2
    4 3
    8
    
    예상 출력
    0