만드는 중입니다

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

∏i=1N(Ri−Li+1)\prod_{i=1}^N(R_i-L_i+1)개의 트리

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

요약
루트가 있는 트리에서 정점마다 상한과 부분트리 합의 하한이 주어질 때, 주어진 범위의 모든 비용 벡터에 대해 최소 가중합을 구해 더한 값을 998244353으로 나눈 나머지를 구합니다.
난이도

어려움10점 중 9점

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

문제

1번 정점을 루트로 하는 정점 NN개의 트리가 주어진다. 각 정점 ii에 음이 아닌 정수 aia_i를 정한다.

aia_i들은 모든 1≤i≤N1 \le i \le N에 대해 다음 두 조건을 만족해야 한다.

  • ai≤pia_i \le p_i
  • ii번 정점의 서브트리에 속한 정점 jj들의 aja_j를 모두 더한 값을 SiS_i라고 하면, Si≥qiS_i \ge q_i

위 조건을 만족하는 (a1,a2,…,aN)(a_1, a_2, \ldots, a_N)에 대해 ∑i=1Nciai\sum_{i=1}^N c_i a_i의 최솟값을 f(c1,c2,…,cN)f(c_1, c_2, \ldots, c_N)으로 정의한다.

다음 값을 998 244 353998\,244\,353으로 나눈 나머지를 구하라.

∑c1=L1R1∑c2=L2R2⋯∑cN=LNRNf(c1,c2,⋯ ,cN)\sum_{c_1=L_1}^{R_1}\sum_{c_2=L_2}^{R_2}\cdots\sum_{c_N=L_N}^{R_N}f(c_1,c_2,\cdots,c_N)

입력

첫 줄에 정점의 개수 NN이 주어진다. (1≤N≤2501 \le N \le 250)

둘째 줄부터 N−1N-1개의 줄에 트리 간선 정보가 주어진다. ii번째 줄에는 두 정수 sis_i, eie_i가 공백으로 구분되어 주어지며, 이는 sis_i와 eie_i를 잇는 간선이 존재한다는 뜻이다. (1≤si,ei≤N1 \le s_i, e_i \le N)

1≤i≤N1 \le i \le N에 대해, (N+i)(N+i)번째 줄에는 pip_i, qiq_i, LiL_i, RiR_i가 공백으로 구분되어 주어진다. (1≤Li≤Ri≤2501 \le L_i \le R_i \le 250; 0≤pi,qi≤2500 \le p_i, q_i \le 250; ∑i=1Npi≤250\sum_{i=1}^N p_i \le 250)

주어진 그래프는 트리이며, 조건을 만족하는 (a1,a2,…,aN)(a_1, a_2, \ldots, a_N)이 존재하는 입력만 주어진다.

출력

문제에 주어진 값을 998 244 353998\,244\,353으로 나눈 나머지를 출력한다. 998 244 353=119×223+1998\,244\,353=119\times 2^{23}+1은 소수이다.

힌트

jj번 정점이 ii번 정점의 서브트리에 포함되는 경우는 j=ij=i이거나 ii번 정점이 jj번 정점의 조상인 경우이다.

예제2

  1. 예제 1

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

    입력
    6
    1 2
    1 3
    2 4
    2 5
    4 6
    1 7 1 3
    3 2 2 4
    2 1 1 4
    4 2 4 6
    2 0 1 5
    2 0 2 5
    
    예상 출력
    39072