Bài 2. Tranh treo tường

Xem dưới dạng PDF

Gửi bài giải

Điểm: 70
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M

Tác giả:
Kiểu bài tập

Anh Hạo muốn treo một bức tranh của mình lên tường. Bức tường có thể được biểu diễn như một ma trận với \(n\) hàng và \(m\) cột. Vì anh đã treo bức tranh lên tường nhiều lần trước đây, một số vị trí vẫn còn đinh cắm vào. Những vị trí như vậy được đánh dấu bằng ký hiệu "#", trong khi các vị trí trống được đánh dấu bằng ký hiệu ".".

Bức tranh có hình chữ nhật với kích thước tùy ý và được đặt lên tường theo cách nó phủ một vùng hình chữ nhật. Bức tranh có thể được đặt lên tường nếu nó phủ nhiều nhất một vị trí có chứa đinh.

Hãy giúp anh Hạo tính số cách anh có thể đặt bức tranh lên tường.

Dữ liệu vào

  • Dòng đầu tiên chứa \(n\) và \(m\) \((1 \le n, m \le 500)\), kích thước của bức tường.
  • Trong mỗi dòng trong \(n\) dòng tiếp theo, có \(m\) ký tự \(c_{i,j}\), mô tả bức tường. Mỗi ký tự sẽ là "." hoặc "#" (không có dấu ngoặc kép).

Dữ liệu ra

  • Trên một dòng duy nhất, in ra số cách có thể đặt bức tranh lên tường.

Chấm điểm

Subtask Điểm Ràng buộc
1 17 \(n, m \le 10\)
2 21 \(n, m \le 100\)
3 32 Không có ràng buộc bổ sung

Input 1

3 3
...
...
..#

Output 1

36

Input 2

4 4
....
.#..
#...
#.#.

Output 2

76

Input 3

5 5
.....
#..#.
..#.#
.....
..#..

Output 3

154

Giải thích ví dụ đầu tiên: Mỗi cách đặt bức tranh đều hợp lệ miễn là nó phủ nhiều nhất một đinh.

Giải thích ví dụ thứ hai: Bức tranh không thể được đặt theo cách nó phủ các vị trí (3, 1) và (4, 1) cùng lúc.


Nhận xét

Không có ý kiến tại thời điểm này.