포럼
문제 USACO0432

스프링클러 2: 알팔파의 귀환

설명

농부 존은 \(N\)\(N\)열 격자 모양의 작은 밭(\(1 \le N \le 2000\))을 가지고 있다. 모든 \(1 \le i,j \le N\)에 대해, 위에서 \(i\)번째 행의 왼쪽에서 \(j\)번째 칸을 \((i,j)\)로 나타낸다. 그는 밭에 단옥수수와 알팔파를 심고 싶다. 그러려면 특수한 스프링클러를 몇 개 설치해야 한다.

\((I,J)\)에 있는 단옥수수 스프링클러는 왼쪽 아래의 모든 칸, 즉 \(I \le i\)이고 \(j \le J\)\((i,j)\)에 물을 뿌린다.

\((I,J)\)에 있는 알팔파 스프링클러는 오른쪽 위의 모든 칸, 즉 \(i \le I\)이고 \(J \le j\)\((i,j)\)에 물을 뿌린다.

하나 이상의 단옥수수 스프링클러가 물을 뿌리는 칸에는 단옥수수를 기를 수 있고, 하나 이상의 알팔파 스프링클러가 물을 뿌리는 칸에는 알팔파를 기를 수 있다. 하지만 두 종류의 스프링클러가 모두 물을 뿌리는 칸(또는 어느 종류도 물을 뿌리지 않는 칸)에는 아무것도 기를 수 없다.

모든 칸이 비옥하도록(즉, 정확히 한 종류의 스프링클러만 물을 뿌리도록), 각 칸에 많아야 하나씩 스프링클러를 설치하는 방법의 수를 \(10^9 + 7\)로 나눈 나머지로 구하여 농부 존을 도와주자.

일부 칸은 이미 털북숭이 소들이 차지하고 있다. 그렇다고 그 칸이 비옥해지지 못하는 것은 아니지만, 그런 칸에는 스프링클러를 설치할 수 없다.

문제 제공: Benjamin Qi

제약

배점

  • 테스트 케이스 3-4는 \(N\le 10\)을 만족하며 비어 있는 칸이 많아야 열 개이다.
  • 테스트 케이스 5-9는 \(N\le 200\)을 만족한다.
  • 테스트 케이스 10-16은 추가 제약이 없다.

문제 제공: Benjamin Qi

입력 형식

첫째 줄에 정수 \(N\)이 하나 주어진다.

\(1\le i\le N\)에 대해, \(i+1\)번째 줄에 격자의 \(i\)번째 행을 나타내는 길이 \(N\)의 문자열이 주어진다. 문자열의 각 문자는 'W'(털북숭이 소가 차지한 칸) 또는 '.'(비어 있는 칸) 중 하나이다.

출력 형식

스프링클러를 설치하는 방법의 수를 \(10^9+7\)로 나눈 나머지를 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 sprinklers2.in · 출력을 쓸 파일 sprinklers2.out
예제 1
입력
2
..
..
출력
28
설명

Here are all fourteen possibilities when sweet corn can grow at \((1,1)\).

CC  .C  CA  CC  .C  CA  CA  C.  CA  C.  CC  .C  CC  .C
CC, CC, CC, .C, .C, .C, CA, CA, .A, .A, C., C., .., ..
예제 2
입력
4
..W.
..WW
WW..
...W
출력
2304
설명

This satisfies the constraints for the first subtask described below.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2019-2020 > US Open > Platinum

태그

평가 및 의견

Sprinklers 2: Return of the Alfalfa

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Sprinklers 2: Return of the Alfalfa

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (sprinklers2.in / sprinklers2.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8