순례자의 기억과 감명받은 신

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

요약
격자 위 (1,1)에서 (N,N)으로 가는 단조 경로들이 만드는 서로 다른 0/1 문자열마다 등장 횟수 X에 대해 X^2+1을 더한 합을 구한다.
난이도

어려움10점 중 9점

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

문제

순례자는 영원히 끝나지 않을 것만 같은 순례를 계속하고 있다. 지상에는 총 N2N^2 개의 성지가 있다. 이 성지들은 N×NN \times N 격자 모양으로 배치가 되어있으며, 위쪽에서 ii번째, 왼쪽에서 jj번째 성지를 (i,j)(i, j)번 성지라고 한다. 성지에 도착한 순례자는 흑색 시련과 백색 시련 둘 중 하나를 반드시 받게 된다. 흑색 시련이란 본인의 업을 치르게 되는 "카르마에 의한 시련"이고, 백색 시련은 본인의 격을 높이기 위한 "상승을 위한 시련"이다.

순례자는 "현세"를 뜻하는 (1,1)(1, 1)번 성지에서 시련을 받는 것으로 순례를 시작한다. (i,j)(i, j)번 성지의 시련을 받은 순례자는 (i+1,j)(i+1, j)번 성지와 (i,j+1)(i, j+1)번 성지 중 하나로 이동하여 시련을 계속 받는 것을 반복한다. 그렇게 "해탈"을 뜻하는 (N,N)(N, N)번 성지에 도달하여 마지막 시련을 받아, 총 2N−12N-1 개의 성지를 방문한 한 번의 순례가 끝난다.

이런 방식으로 총 (2N−2N−1)\binom{2N-2}{N-1}가지의 서로 다른 순례를 할 수 있다. 그렇게 순례자는 해탈의 경지에 도달하기 위하여, 모든 방식의 순례를 정확히 한 번씩 시행했다.

모든 순례가 끝나 잠시 쉬고 있는 순례자는 이번 순례의 기억을 되새기고 있다. 순례자의 기억은 순례자가 순례 중 이동할 수 있는 가능성이 있는 순서대로 한 개 이상의 성지를 나열한 것이다. 정확히 말해서, ll 개의 성지 (i_1,j_1)(i\_1,j\_1), (i_2,j_2)(i\_2,j\_2), ⋯\cdots, (i_l,j_l)(i\_l,j\_l)로 이루어진 기억은, i_1≤i_2≤⋯≤i_li\_1 \le i\_2 \le \cdots \le i\_l, j_1≤j_2≤⋯≤j_lj\_1 \le j\_2 \le \cdots \le j\_l, (i_k−1,j_k−1)≠(i_k,j_k)(i\_{k-1},j\_{k-1})\neq(i\_k,j\_k) (2≤k≤l2 \leq k \le l)의 모든 조건을 만족해야 한다.

예를 들면, N=2N=2일 때, 순례자가 떠올릴 수 있는 기억은 다음과 같이 총 4+5+2=114 + 5 + 2 = 11가지가 있다.

 


 

자애롭고 전지전능하신 신께서는 이 모든 것을 지켜보았고, 큰 감명을 받았다. 신은 어떤 성지에서 시련을 받았느냐보다도 어떤 시련을 받았느냐를 더 중요히 여기기 때문에, 순례자의 기억에 등장하는 성지를 모두 그 성지에 대응되는 시련으로 바꿔 인식한다. 신은 순례자의 기억을 모두 보고 나서, 한 번 이상 등장하는 기억에 대해, 이 기억이 총 XX번 등장한다면 X2+1X^2+1만큼 감명받는다. 이렇게 신이 감명하는 정도의 총합을 구하여라.

입력

첫 번째 줄에, 격자의 크기를 의미하는 자연수 NN이 주어진다.

다음 NN 개의 줄의 ii 번째 줄에, 길이 NN의 0과 1로만 구성된 문자열이 주어진다. jj번째 문자가 0이라는 것은, (i,j)(i, j)번 성지에서 흑색 시련을 받는다는 것을 의미하고, 1이라는 것은 (i,j)(i, j)번 성지에서 백색 시련을 받는다는 것을 의미한다.

출력

첫 번째 줄에, 신이 감명하는 정도를 구하여 109+710^9+7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    2
    00
    00
    
    예상 출력
    48
    
  2. 예제 2

    입력
    2
    00
    10
    
    예상 출력
    30
    
  3. 예제 3

    입력
    5
    11010
    00110
    10110
    10110
    10111
    
    예상 출력
    1304460