개의 트리
시간 제한2초메모리 제한1024 MB
루트가 있는 트리에서 정점마다 상한과 부분트리 합의 하한이 주어질 때, 주어진 범위의 모든 비용 벡터에 대해 최소 가중합을 구해 더한 값을 998244353으로 나눈 나머지를 구합니다.
문제
1번 정점을 루트로 하는 정점 개의 트리가 주어진다. 각 정점 에 음이 아닌 정수 를 정한다.
들은 모든 에 대해 다음 두 조건을 만족해야 한다.
- 번 정점의 서브트리에 속한 정점 들의 를 모두 더한 값을 라고 하면,
위 조건을 만족하는 에 대해 의 최솟값을 으로 정의한다.
다음 값을 으로 나눈 나머지를 구하라.
입력
첫 줄에 정점의 개수 이 주어진다. ()
둘째 줄부터 개의 줄에 트리 간선 정보가 주어진다. 번째 줄에는 두 정수 , 가 공백으로 구분되어 주어지며, 이는 와 를 잇는 간선이 존재한다는 뜻이다. ()
에 대해, 번째 줄에는 , , , 가 공백으로 구분되어 주어진다. (; ; )
주어진 그래프는 트리이며, 조건을 만족하는 이 존재하는 입력만 주어진다.
출력
문제에 주어진 값을 으로 나눈 나머지를 출력한다. 은 소수이다.
힌트
번 정점이 번 정점의 서브트리에 포함되는 경우는 이거나 번 정점이 번 정점의 조상인 경우이다.