만드는 중입니다

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

Salaj

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

요약
정점이 V개인 그래프에서 간선이 j개(1 이상 MAX 이하)일 때 유효한 연결성 기록 배열의 수를 MOD로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

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

문제

두 정수 VV와 EE가 주어진다. 길이가 EE인 배열 AA가 유효한 연결성 기록 배열(CHA)이라는 것은, 정점이 VV개이고 간선이 EE개인 방향 그래프와 길이가 EE인 순열 PP가 존재해서, 정점이 VV개이고 간선이 없는 그래프에 PP의 순서대로 간선을 하나씩 추가할 때 모든 1≤i≤E1 \le i \le E에 대해 P[i]P[i]번째 간선을 추가한 뒤의 강한 연결 요소 개수가 A[i]A[i]가 되는 경우이다. 그래프에는 자기 루프나 중복된 간선이 없어야 한다. 다만 (x,y)(x, y) 간선이 있을 때 (y,x)(y, x) 간선은 있어도 된다. 예를 들어 V=3V = 3, E=3E = 3일 때 A=[3,3,3]A = [3, 3, 3]은 유효하다. 그래프 {(1,2),(1,3),(2,3)}\{(1, 2), (1, 3), (2, 3)\}은 간선을 어떤 순서로 추가하든 강한 연결 요소가 항상 3개이기 때문이다. A=[3,3,1]A = [3, 3, 1]도 유효하다. 그래프 {(1,2),(2,3),(3,1)}\{(1, 2), (2, 3), (3, 1)\}을 이 순서로 추가하면 강한 연결 요소가 처음 두 간선 뒤에는 3개, 세 번째 간선 뒤에는 1개가 된다. 반면 A=[3,2,1]A = [3, 2, 1]은 유효하지 않다. 정점 3개, 간선 3개인 어떤 그래프도 간선을 추가할 때마다 연결 요소 개수가 줄어드는 순서를 갖지 못하기 때문이다.

입력

첫 줄에 질의의 개수 QQ가 주어진다 (Q≤10Q \le 10). 이어지는 QQ개의 줄에는 각각 정수 ViV_i, MAXiMAX_i, MODiMOD_i가 주어진다 (1≤Vi≤501 \le V_i \le 50, 1≤MAXi≤Vi(Vi−1)1 \le MAX_i \le V_i(V_i - 1), 1≤MODi≤1091 \le MOD_i \le 10^9).

출력

각 질의마다 한 줄에 MAXiMAX_i개의 정수를 출력한다. jj번째 정수는 쌍 (Vi,j)(V_i, j)에 대한 유효한 CHA의 개수를 MODiMOD_i로 나눈 나머지이다. 여기서 1≤j≤MAXi1 \le j \le MAX_i이다.

예제1

  1. 예제 1

    입력
    2
    5 10 666013
    6 9 10
    
    예상 출력
    1 2 4 9 21 50 110 209 351 546
    1 2 4 9 1 1 6 0 7