Balanced Subsets
시간 제한1초메모리 제한512 MB
N×N 격자에서 각 행과 열이 부분집합과 만나는 칸이 하나의 연속 구간이 되는 연결된 잔디 칸 부분집합의 개수를 10^9+7로 나눈 나머지로 센다.
문제
Farmer John의 목초지는 , 인 순서쌍 로 번호가 붙은 정사각형 칸들로 이루어진 거대한 2차원 격자이다 (). 이 중 일부 칸에는 풀이 있다.
격자 칸의 공집합이 아닌 부분집합이 다음 조건을 만족하면 "balanced"라고 한다:
- 부분집합의 모든 칸에는 풀이 있다.
- 부분집합은 4-connected이다. 즉, 부분집합의 임의의 두 칸 사이에 경로가 존재하며, 경로의 연속한 두 칸은 가로 또는 세로로 인접한다.
- 칸 와 ()가 부분집합에 속하면, 인 모든 칸 도 부분집합에 속한다.
- 칸 과 ()가 부분집합에 속하면, 인 모든 칸 도 부분집합에 속한다.
balanced 부분집합의 개수를 로 나눈 나머지를 구하라.
입력
첫 줄에 이 주어진다.
다음 개의 줄에는 각각 길이 의 문자열이 주어진다. 위에서 번째 줄의 번째 문자는 칸에 풀이 있으면 G, 없으면 .이다.
출력
balanced 부분집합의 개수를 로 나눈 나머지를 출력한다.