#P16619. [GKS 2017 #B] Christmas Tree

    ID: 16574 Type: RemoteJudge 5000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>动态规划 DP2017Google Kick Start

[GKS 2017 #B] Christmas Tree

题目描述

You are given a rectangular grid with NN rows and MM columns. Each cell of this grid is painted with one of two colors: green and white. Your task is to find the number of green cells in the largest Christmas tree in this grid.

To define a Christmas tree, first we define a good triangle as follows:

A good triangle with top point at row RR, column CC and height hh is an isoeles triangle consisting entirely of green cells and pointing upward. Formally, this means that: The cell (RR, CC) is green, and for each ii from 00 to h1h-1 inclusive, the cells in row R+iR+i from column CiC-i to column C+iC+i are all green.

For example:

..#..
.####
#####

is a good triangle with height 3. The # cells are green and the . cells are white. Note that there is a green cell that is not part of the good triangle, even though it touches the good triangle.

..#..
.###.
####.

is NOT a good triangle, because the 5th cell in the 3rd row is white. However, there are good triangles with height 2 present.

...#.
.###.
#####.

is NOT a good triangle. However, there are good triangles with height 2 present.

A K-Christmas tree is defined as follows:

  • It contains exactly KK good triangles in vertical arrangement.
  • The top cell of the i+1i+1-th triangle must share its top edge with the bottom edge of any one of the cells at the base of the ii-th triangle. This means that, if the base of the ii-th triangle is at row rr, from column c1c1 to column c2c2, then the top of the i+1i+1-th triangle must be on row r+1r+1, in a column somewhere between c1c1 and c2c2, inclusive.

For example, if K=2K = 2:

...#...
..###..
.#####.
#######
..#....
.###...
#####..

is a valid 2-Christmas tree. Note that the height of the 2 good triangles can be different.

..#..
.###.
.#...

is also a valid 2-Christmas tree. Note that a good triangle can be of height 1 and have only one green cell.

...#...
..###..
.#####.
.......
..#....
.###...
#####..

is NOT a valid Christmas tree, because the 2nd triangle must starts from the 4-th row.

...#.
..###
.#...
###..

is NOT a valid Christmas tree, because the top of the 2nd triangle must be in a column between 3 and 5, inclusive.

You need to find the K-Christmas tree with the largest number of green cells.

输入格式

The first line of the input gives the number of test cases, TT. TT test cases follow. Each test case consists of three lines:

  • The first line contains 3 space-separated integers NN, MM and KK, where NN is the number of rows of the grid, MM is the number of columns of the grid and KK is the number of good triangle in the desired Christmas tree.
  • The next NN lines each contain exactly MM characters. Each character will be either . or #, representing a white or green cell, respectively.

输出格式

For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the number of green cells in the largest K-Christmas tree. If there is no K-Christmas tree, output 0.

4
3 5 1
..#..
.###.
#####
3 5 1
.....
.....
.....
4 5 1
#####
#####
#####
#####
4 5 2
#####
#####
#####
#####
Case #1: 9
Case #2: 0
Case #3: 9
Case #4: 10

提示

Limits

1T1001 \le T \le 100.

1M1001 \le M \le 100.

1N1001 \le N \le 100.

Each cell in the grid is either . or #.

Small dataset (Test set 1 - Visible)

K=1{K} = 1.

Large dataset (Test set 2 - Hidden)

1K1001 \le {K} \le 100.