만드는 중입니다

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

라우팅 방식

시간 제한1초메모리 제한512 MB

요약
역방향 간선이 K개 있는 그래프에서 모든 간선을 정확히 한 번씩 지나는 S개의 경로로 송신자와 수신자를 잇는 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

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

문제

NN개(2≤N≤1002 \le N \le 100)의 노드가 11부터 NN까지 번호로 구분되는 네트워크가 있다. 각 노드는 송신자, 수신자, 또는 둘 다 아닌 노드 중 하나로 지정된다. 송신자의 수 SS는 수신자의 수와 같으며 S≥1S \ge 1이다.

노드 사이의 연결은 방향 간선 i→ji \to j의 목록으로 주어진다. 이 간선은 노드 ii가 노드 jj로 라우팅할 수 있다는 뜻이다. 모든 간선은 i<ji < j를 만족하며, 예외적으로 정확히 KK개의 간선만 i>ji > j를 만족한다 (0≤K≤20 \le K \le 2). 자기 자신으로 가는 간선(i→ii \to i)은 없다.

라우팅 방식은 방향 경로 SS개의 집합이며, 각 경로는 송신자에서 수신자로 간다. 서로 다른 두 경로는 끝점을 공유하지 않는다. 즉, 경로들은 서로 다른 송신자를 서로 다른 수신자에 연결한다. 경로 s=v0→v1→v2→⋯→ve=rs=v_0 \to v_1 \to v_2 \to \cdots \to v_e=r은 각 0≤i<e0 \le i < e에 대해 간선 vi→vi+1v_i \to v_{i+1}이 존재할 때 유효하다. 한 경로 안에서 같은 노드가 여러 번 나올 수 있다.

모든 방향 간선을 정확히 한 번씩 지나가는 라우팅 방식의 수를 구하라. 답이 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력한다. 각 테스트 케이스마다 조건을 만족하는 라우팅 방식이 적어도 하나 있음이 보장된다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다 (1≤T≤201 \le T \le 20). 각 테스트 케이스는 독립적으로 푼다. 모든 테스트 케이스에 대한 N2N^2의 합은 2⋅1042 \cdot 10^4을 넘지 않는다.

각 테스트 케이스의 첫 줄에는 정수 NN과 KK가 주어진다. SS는 입력에 따로 주어지지 않는다.

둘째 줄에는 길이 NN의 문자열이 주어진다. ii번째 문자가 S이면 노드 ii는 송신자, R이면 수신자, .이면 둘 다 아니다. 문자열의 R 개수는 S 개수와 같으며 S는 적어도 하나 있다.

이어지는 NN개의 줄에는 각각 길이 NN의 이진 문자열이 주어진다. ii번째 줄의 jj번째 비트가 1이면 노드 ii에서 노드 jj로 가는 간선이 있고, 0이면 없다. 대각선은 모두 0이다. 대각선 아래쪽에 있는 1은 정확히 KK개이다.

출력

각 테스트 케이스마다 모든 간선을 정확히 한 번씩 지나가는 라우팅 방식의 수를 109+710^9+7로 나눈 나머지를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    2
    
    8 0
    SS....RR
    00100000
    00100000
    00011000
    00000100
    00000100
    00000011
    00000000
    00000000
    
    13 0
    SSS.RRRSS.RR.
    0001000000000
    0001000000000
    0001000000000
    0000111000000
    0000000000000
    0000000000000
    0000000000000
    0000000001000
    0000000001000
    0000000000110
    0000000000000
    0000000000000
    0000000000000
    
    예상 출력
    4
    12
    
  2. 예제 2

    입력
    2
    
    5 1
    SS.RR
    00101
    00100
    10010
    00000
    00000
    
    6 2
    S....R
    001000
    000100
    010001
    000010
    001000
    000000
    
    예상 출력
    3
    1
    
  3. 예제 3

    입력
    5
    
    3 2
    RS.
    010
    101
    100
    
    4 2
    .R.S
    0100
    0010
    1000
    0100
    
    4 2
    .SR.
    0000
    0011
    0100
    0010
    
    5 2
    .SSRR
    01000
    10101
    01010
    00000
    00000
    
    6 2
    SS..RR
    001010
    000010
    000010
    000010
    100101
    000000
    
    예상 출력
    2
    1
    2
    6
    24