포럼
문제 USACO0408

동굴 그림

설명

베시가 예술가가 되어 동굴 그림을 그리고 있다! 현재 작업 중인 작품은 높이 \(N\)의 격자로, 격자의 각 행은 정확히 \(M\)개의 칸으로 이루어져 있다(\(1\le N,M\le 1000\)). 각 칸은 비어 있거나, 바위로 채워져 있거나, 물로 채워져 있다. 베시는 그림의 테두리 전체를 포함하여 바위가 들어갈 칸들을 이미 칠해 두었다. 이제 베시는 이 그림이 실제라면 물의 순 이동이 없도록, 비어 있는 칸 일부를 물로 채우고 싶다. 위에서 \(i\)번째 행에 있는 칸의 높이를 \(N+1-i\)로 정의한다. 베시는 그림이 다음 제약 조건을 만족하기를 바란다.

\(a\)가 물로 채워져 있다고 하자. 이때 \(a\)보다 높지 않은 빈 칸 또는 물 칸만을 사용하고 경로 위의 인접한 두 칸이 항상 변을 공유하는, \(a\)에서 칸 \(b\)로 가는 경로가 존재한다면, \(b\)도 물로 채워져 있어야 한다.

베시가 만들 수 있는 서로 다른 그림의 개수를 \(10^9+7\)로 나눈 나머지를 구하여라. 베시는 빈 칸을 원하는 개수만큼 물로 채울 수 있으며, 하나도 채우지 않거나 전부 채워도 된다.

문제 제공: Daniel Zhang

제약

점수 배점

  • 테스트 케이스 1-5는 \(N,M\le 10\)을 만족한다.
  • 테스트 케이스 6-15는 추가 제약이 없다.

문제 제공: Daniel Zhang

입력 형식

첫째 줄에 공백으로 구분된 두 정수 \(N\)\(M\)이 주어진다.

다음 \(N\)개의 줄에는 각각 \(M\)개의 문자가 주어진다. 각 문자는 '.' 또는 '#'로, 각각 빈 칸과 바위로 채워진 칸을 나타낸다. 첫 행과 마지막 행, 그리고 첫 열과 마지막 열은 '#'만을 포함한다.

출력 형식

정수 하나를 출력한다. 제약 조건을 만족하는 그림의 개수를 \(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:
입력을 읽을 파일 cave.in · 출력을 쓸 파일 cave.out
예제 1
입력
4 9
#########
#...#...#
#.#...#.#
#########
출력
9
설명

If a square in the second row is filled with water, then all empty squares must
be filled with water. Otherwise, assume that no such squares are filled with
water. Then Bessie can choose to fill any subset of the three horizontally
contiguous regions of empty squares in the third row. Thus, the number of
paintings is equal to \(1+2^3=9.\)

문제 정보

riseoj 작성

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

태그

평가 및 의견

Cave Paintings

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

Log in to rate problems.

개별 의견

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

풀이 제출

Cave Paintings

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