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

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

그래프 여행

메모리 제한1024 MB

요약
각 방에 점수와 [L, R] 범위의 방패가 있고, 현재 점수가 범위 안일 때만 방패를 부술 수 있을 때, 처음 방문하는 방들의 순서 중 총점이 정확히 K가 되는 경우의 수를 센다.
난이도

어려움10점 중 8점

유형
그래프, 동적 계획법, 조합론, 백트래킹
정답자
아직 제출이 없습니다

문제

Ada는 마법의 나라 A에 살며 마법 대학에 다닌다. 오늘 Ada는 특별한 공간에서 마법 포인트를 모으려고 한다.

공간에는 NN개의 방 (0,1,⋯ ,N−1)(0,1, \cdots ,N-1)이 있다. 방을 잇는 MM개의 복도가 있다. 복도 jj는 방 X_jX\_j와 방 Y_jY\_j를 연결하며, 두 방 사이를 오갈 수 있다.

ii번째 방에는 A_iA\_i개의 마법 포인트가 있고, L_iL\_i와 R_iR\_i 성질을 가진 마법 방패로 보호된다. ii번째 방에 들어가려면 먼저 이미 방패가 부서진 방들만 거쳐서 ii번째 방과 인접한(즉 복도로 연결된) 어떤 방에 도달해야 한다. 그런 다음 이 방의 방패를 부숴야 하는데, 방패는 현재 마법 포인트가 L_iL\_i 이상 R_iR\_i 이하일 때만 부술 수 있다. 방패를 부수면 방에 들어가고, 이 방에 배정된 A_iA\_i개의 마법 포인트를 자동으로 얻는다. 방은 새로운 마법 포인트를 생성하지 않는다. 방패가 부서진 뒤에는 새 방패가 생기지 않으므로, 방패가 이미 부서진 모든 방은 현재 포인트와 상관없이 자유롭게 다시 갈 수 있다.

Ada는 00개의 마법 포인트를 가지고 시작하며, 정확히 KK개의 마법 포인트를 모으는 방법을 찾는 것이 목표이다. 어느 방에서 시작해도 되고 어느 방에서 끝나도 된다. 시작하는 방은 방패가 자동으로 부서진 상태이고, 이 방의 마법 포인트를 모두 자동으로 얻는다.

방과 복도의 지도를 살펴본 Ada는 이 일이 아주 쉽다고 생각해서 더 어려운 일에 도전하려 한다. 목표를 달성하는 서로 다른 방법이 몇 가지인지 알고 싶어 한다. 두 방법은 그 고유 경로가 다르면 서로 다르다. 고유 경로란 방패를 부순 방들의 순서이다. 예를 들어 방을 (1,3,2,1,3,5,3,6)(1,3,2,1,3,5,3,6) 순서로 방문했다면 고유 경로는 (1,3,2,5,6)(1,3,2,5,6)이다.

입력

입력의 첫 줄에는 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 방의 수, 복도의 수, 모으려는 마법 포인트의 수를 나타내는 세 정수 NN, MM, KK가 주어진다.

다음 NN개의 줄에는 ii번째 방의 마법 방패 성질 L_iL\_i와 R_iR\_i, 마법 포인트의 수 A_iA\_i를 나타내는 세 정수 L_iL\_i, R_iR\_i, A_iA\_i가 주어진다.

다음 MM개의 줄에는 복도 jj가 연결하는 두 방 X_jX\_j, Y_jY\_j를 나타내는 두 정수가 주어진다.

출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 xx는 테스트 케이스 번호(1부터 시작)이고, yy는 KK개의 마법 포인트를 모으는 방법의 수이다.

제한

  • 1≤T≤1001 \le T \le 100.
  • 0≤M≤N×(N−1)20 \le M \le \frac{N \times (N-1)}{2}.
  • 0≤X_j,Y_j≤N−10 \le X\_j,Y\_j \le N-1.
  • X_j≠Y_jX\_j \ne Y\_j.
  • 각 방 쌍은 많아야 하나의 복도로 연결된다.

힌트

첫 번째 경우에는 서로 다른 방법이 44가지 있다. 그 방법은 다음과 같다.

두 번째 경우에는 서로 다른 방법이 88가지 있다. 그 방법은 다음과 같다.

세 번째 경우에는 서로 다른 방법이 44가지 있다. 그 방법은 다음과 같다.

예제1

  1. 예제 1

    입력
    3
    4 3 3
    1 3 1
    1 1 1
    2 4 1
    2 3 1
    0 1
    1 2
    2 3
    4 5 3
    1 3 1
    1 1 1
    2 4 1
    2 3 1
    0 1
    1 2
    2 3
    3 0
    0 2
    4 1 2
    0 4 1
    0 4 1
    0 4 2
    0 4 2
    0 1
    
    예상 출력
    Case #1: 4
    Case #2: 8
    Case #3: 4