만드는 중입니다

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

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

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

요약
N x 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개의 성지 (i1,j1),(i2,j2),⋯ ,(il,jl)(i_1,j_1), (i_2,j_2), \cdots, (i_l,j_l)로 이루어진 기억이 다음 조건을 모두 만족해야 한다. i1≤i2≤⋯≤ili_1 \le i_2 \le \cdots \le i_l, j1≤j2≤⋯≤jlj_1 \le j_2 \le \cdots \le j_l, 그리고 2≤k≤l2 \le k \le l인 모든 kk에 대해 (ik−1,jk−1)≠(ik,jk)(i_{k-1},j_{k-1}) \neq (i_k,j_k)이다.

예를 들어 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이면 백색 시련을 받는다는 뜻이다.

출력

첫 번째 줄에 신이 감명받는 정도의 총합을 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