만드는 중입니다

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

늑대인간

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

요약
색이 칠해진 트리에서 한 색이 전체 노드의 절반을 초과하는 연결 부분그래프의 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

색이 칠해진 nn개의 노드로 이루어진 트리가 주어진다. 노드 ii의 색은 cic_i이다. nn개의 노드로 이루어진 트리는 n−1n-1개의 간선으로 이루어진 연결 그래프이다.

이 트리의 연결된 부분그래프 중에서, 어떤 색 (다수색)이 부분그래프 노드의 절반을 엄격하게 초과하는 것의 개수를 구하라. 답이 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

입력

첫 줄에 노드의 개수 nn (1≤n≤30001 \le n \le 3000)이 주어진다. 둘째 줄에는 노드의 색 c1,c2,…,cnc_1, c_2, \ldots, c_n (1≤ci≤n1 \le c_i \le n)이 주어진다. 다음 n−1n-1개 줄에는 트리의 간선 uiu_i와 viv_i (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \neq v_i)가 하나씩 주어진다. 주어지는 그래프는 트리이다.

출력

다수색을 가진 연결된 부분그래프의 개수를 998 244 353998\,244\,353으로 나눈 나머지를 한 줄에 출력한다.

힌트

그림에서 색 1은 파란색, 색 2는 빨간색, 색 3은 노란색으로 표시한다. 첫 번째 그림에서 1번과 2번 노드로 이루어진 부분그래프는 빨간색과 노란색이 각각 한 번씩 나오므로 다수색이 없다.

예제2

  1. 예제 1

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

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