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

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

애완 트리

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

요약
트리의 각 간선 길이를 주어진 범위에서 정할 때 지름이 S 이상 E 이하가 되는 조합의 수를 세어 1e9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

종영이는 애완 트리를 키우고 있다. 이 트리는 NN개의 정점이 있으며 ii번째 간선은 두 정점 uiu_i와 viv_i를 잇는다.

요즘 트리에게도 사춘기가 와서, 변덕이 심해 간선들의 길이가 매일 바뀐다. ii번째 간선의 길이는 [Li,Ri]\left[L_i, R_i\right] 범위의 자연수 중 하나를 가질 수 있다.

트리의 변덕에 짜증이 난 종영이는 참을성이 부족해 트리를 팔아버리기로 했다. 트리는 지름이 SS 이상 EE 이하이면 크기가 적절한 좋은 트리라 생각되어 비싸게 취급된다. 트리의 지름은 트리 상에서 임의의 두 정점 사이의 거리 중 최댓값을 뜻한다.

간선들의 가능한 길이들의 조합은 총 ∏i=1N−1(Ri−Li+1)\prod_{i=1}^{N-1} \left(R_i-L_i+1\right)가지임을 알 수 있다. 종영이가 트리를 비싸게 팔아치우는 것을 도와주기 위해 가능한 모든 조합에 대해 트리의 지름이 SS 이상 EE 이하인 경우의 수를 구하여라.

입력

첫 줄에 NN, SS, EE가 주어진다. (2≤N≤4002 \leq N \leq 400, 1≤S≤E≤1091 \leq S \leq E \leq 10^9)

그 후 N−1N-1개의 줄에 걸쳐 트리의 간선들의 정보가 주어진다. 정보는 uiu_i, viv_i, LiL_i, RiR_i 순서로 주어진다. (1≤ui1 \leq u_i, vi≤Nv_i \leq N, 1≤Li≤Ri≤4001 \leq L_i \leq R_i \leq 400)

출력

트리의 지름이 SS 이상 EE 이하인 경우의 수를 109+710^9+7로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

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

    입력
    8 17 31
    3 4 5 5
    1 8 8 8
    8 2 8 10
    6 7 8 10
    6 3 9 10
    8 6 7 10
    7 5 1 10
    
    예상 출력
    159