아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

트리 평균 가중치

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

요약
일부 차수가 자유로운 차수 수열이 주어질 때, 레이블 트리를 균등하게 무작위로 골라 가중치 u*sz(u)+v*sz(v)의 기댓값의 정수 부분을 구한다.
난이도

어려움10점 중 9점

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

문제

정점 번호가 11부터 nn까지인 레이블 트리를 생각하자.

트리의 가중치를 모든 간선 uvuv에 대한 u⋅sz_uv(u)+v⋅sz_vu(v)u \cdot \mathrm{sz}\_{uv}(u) + v \cdot \mathrm{sz}\_{vu}(v) 값의 합으로 정의하자. 여기서 sz_vu(v)\mathrm{sz}\_{vu}(v)는 간선 (vu)(vu)를 제거한 뒤 vv를 포함하는 서브트리의 크기이다.

크기 nn인 배열 aa가 주어진다. 배열의 각 원소는 11 이상 n−1n-1 이하의 정수이거나 −1-1이다. vv번째 원소는 정점 vv의 차수에 대응된다. 정점 nn개를 가진 트리가 good하다는 것은, a_v≠−1a\_{v} \ne -1인 모든 vv에 대해 vv의 차수가 a_va\_{v}와 같은 경우를 말한다. 즉, a_v=−1a\_{v} = -1이면 vv는 어떤 차수든 가질 수 있고, 그렇지 않으면 차수가 a_va\_{v}로 고정된다.

good한 트리 중 하나를 균등한 확률로 무작위로 선택하자. 이 트리의 가중치의 기댓값을 EE라 할 때, EE의 정수 부분을 구하라.

입력

첫째 줄에 정수 nn이 주어진다. 이는 트리의 크기이다 (2≤n≤1062 \le n \le 10^{6}).

둘째 줄에 크기 nn인 배열이 주어진다. 배열의 각 원소는 11 이상 n−1n-1 이하의 정수(고정된 차수)이거나 −1-1(임의의 차수)이다. 원소의 절댓값의 합이 2n−22n-2 이하임이 보장된다.

출력

EE의 정수 부분을 출력하라.

예제4

  1. 예제 1

    입력
    5
    1 -1 -1 -1 -1
    
    예상 출력
    67
    
  2. 예제 2

    입력
    5
    -1 -1 -1 -1 1
    
    예상 출력
    52
    
  3. 예제 3

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

    입력
    4
    1 1 2 2
    
    예상 출력
    38