아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

색종이 붙이기

시간 제한4초메모리 제한512 MB

요약
N×M 격자에서 색칠되지 않은 모든 칸을 색종이가 덮을 수 있는 종이 크기(세로와 가로)의 개수를 구합니다.
난이도

보통10점 중 6점

유형
행렬, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

현욱은 학교 미술 과제로 여러 장의 색종이를 붙여 만든 작품을 내려고 한다. 현욱은 우선 색종이를 붙일 수 있도록 위아래로 NN칸, 좌우로 MM칸 크기(1≤N,M≤20001 \le N, M \le 2000)인 직사각형 모양의 모눈 종이를 준비했다.

현욱은 이 모눈 종이의 일부 칸에 색을 칠하고, 나머지 칸은 색종이를 붙여서 채우려고 한다. 현욱은 가로와 세로 길이가 모눈 크기의 배수인 여러 종류의 색종이를 가지고 있다. 이 중 한 종류를 골라 그 색종이만으로 모든 칸을 채우려고 하며, 다음 조건을 만족해야 한다.

  • 색종이는 모눈 칸에 정확히 맞춰 붙여야 하며, 회전할 수 없다.
  • 색종이끼리는 겹쳐 붙여도 되지만, 이미 색을 칠해 둔 칸과 겹쳐 붙여서는 안 된다.
  • 색칠되지 않은 모든 칸은 한 장 이상의 색종이로 덮여 있어야 한다.

현욱은 이 조건을 만족하는 색종이 크기가 몇 종류인지 궁금해졌다. 현욱을 도와 주어진 조건을 만족하는 색종이 크기의 경우의 수를 계산해 보자.

입력

첫 줄에 종이의 크기 NN, MM이 공백으로 구분되어 주어진다(1≤N,M≤20001 \le N, M \le 2000).

둘째 줄부터 NN줄에 걸쳐 모눈 종이의 현재 상태가 주어진다. '.'은 색이 칠해지지 않은 칸, '#'은 색이 칠해진 칸이다. 색이 칠해지지 않은 칸은 반드시 하나 이상 있다.

출력

첫째 줄에 문제의 조건을 만족하는 색종이 크기가 몇 종류인지 출력한다.

예제4

  1. 예제 1

    입력
    3 3
    ..#
    ...
    #..
    
    예상 출력
    4
    
  2. 예제 2

    입력
    8 9
    .........
    .........
    .........
    ...#.....
    .....#...
    ....#....
    .........
    .........
    
    예상 출력
    4
    
  3. 예제 3

    입력
    9 9
    ######...
    ######...
    ######...
    #........
    #.....###
    #.....###
    #####....
    #####....
    #####....
    
    예상 출력
    9
    
  4. 예제 4

    입력
    5 5
    .....
    ....#
    ...##
    ..###
    .####
    
    예상 출력
    1