Building Fences
Statement
There is a grassy field with fences, which is represented by a grid of rows and columns. Each cell consists of grass (.) or a fence (#).
You would like to build a complete vertical wall: a single column of cells that only consists of fences. You can pick any number of grass cells (including zero) and build a fence on each of them, turning them into fence cells. What is the minimum number of fences you need to build to create a complete vertical wall?
Input Format
The first line contains two space-separated integers, and .
The next lines describe the field. Each line consists of characters. Each cell is denoted by ‘.’ if it is grass and ‘#’ if it contains a fence.
Output Format
Output the minimum number of fences you need to build to create a complete vertical wall.
Constraints
For all tasks:
- .
-
The input grid only consists of ‘.’ and ‘#’.
- Task 1 (10 points):
- Task 2 (10 points):
- Task 3 (10 points):
- Task 4 (10 points):
- Task 5 (10 points):
- Task 6 (10 points):
- Task 7 (10 points):
- Task 8 (10 points):
- Task 9 (10 points):
- Task 10 (10 points):
Sample Input
4 5
.....
...#.
.##..
...#.
Sample Output
2
Explanation
The grid has 4 rows and 5 columns. We need to find a column that requires the fewest fences to be completely filled with fences.
- Column 1 is
...., which requires 4 fences. - Column 2 is
..#., which requires 3 fences. - Column 3 is
..#., which requires 3 fences. - Column 4 is
.#.#, which requires 2 fences. - Column 5 is
...., which requires 4 fences.
The minimum number of fences required is 2 for the fourth column.
Membina Pagar
Pernyataan
Terdapat sebuah padang berumput dengan pagar, yang diwakili oleh grid berukuran baris dan lajur. Setiap petak mengandungi rumput (.) atau pagar (#).
Anda ingin membina tembok menegak yang lengkap iaitu satu lajur yang hanya terdiri daripada pagar. Anda boleh memilih mana-mana bilangan petak rumput (termasuk sifar) dan membina pagar padanya, menukarkannya menjadi petak pagar. Apakah bilangan pagar minimum yang perlu anda bina untuk menghasilkan tembok menegak yang lengkap?
Format Input
Baris pertama mengandungi dua integer yang dipisahkan oleh ruang, iaitu dan .
baris yang seterusnya menerangkan grid padang tersebut. Setiap baris mengandungi aksara. Setiap petak diwakili oleh . jika ia mengandungi rumput, dan # jika ia mengandungi pagar.
Format Output
Keluarkan bilangan pagar minimum yang perlu dibina untuk menghasilkan tembok menegak yang lengkap.
Kekangan
Untuk semua tugasan:
- .
-
Grid input hanya mengandungi aksara
.dan#. - Tugasan 1 (10 markah):
- Tugasan 2 (10 markah):
- Tugasan 3 (10 markah):
- Tugasan 4 (10 markah):
- Tugasan 5 (10 markah):
- Tugasan 6 (10 markah):
- Tugasan 7 (10 markah):
- Tugasan 8 (10 markah):
- Tugasan 9 (10 markah):
- Tugasan 10 (10 markah):
Contoh Input
4 5
.....
...#.
.##..
...#.
Contoh Output
2
Penjelasan
Grid ini mempunyai 4 baris dan 5 lajur. Kita perlu mencari lajur yang memerlukan bilangan pagar paling sedikit untuk dipenuhi sepenuhnya dengan pagar.
- Lajur 1 ialah
...., memerlukan 4 pagar. - Lajur 2 ialah
..#., memerlukan 3 pagar. - Lajur 3 ialah
..#., memerlukan 3 pagar. - Lajur 4 ialah
.#.#, memerlukan 2 pagar. - Lajur 5 ialah
...., memerlukan 4 pagar.
Bilangan pagar minimum yang diperlukan ialah 2, iaitu untuk lajur keempat.
建栅栏
题目描述
有一块由草地与栅栏构成的场地,用一个 行 列的网格表示。每个格子要么是草地(.),要么是栅栏(#)。
你想建造一面完整的竖直墙:即一列所有格子均为栅栏(#)。你可以将任意数量的草地格子(包括 0 个)改造成栅栏(即把 . 变成 #)。求最少需要修建多少个栅栏,才能得到一面完整的竖直墙?
输入格式
第一行包含两个整数 和 。
接下来的 行描述场地。每一行有 个字符,. 表示该格是草地,则 # 表示该格是栅栏。
输出格式
输出一个整数 - 表示为了得到一个完整的竖直墙所需最少修建栅栏的格子数。
约束
对于每项任务:
- 。
-
输入的网格字符只会是
.与#。 - 任务 1(10 分):
- 任务 2(10 分):
- 任务 3(10 分):
- 任务 4(10 分):
- 任务 5(10 分):
- 任务 6(10 分):
- 任务 7(10 分):
- 任务 8(10 分):
- 任务 9(10 分):
- 任务 10(10 分):
样例输入
4 5
.....
...#.
.##..
...#.
样例输出
2
样例解释
给定的网格共有4行5列。我们需要找出哪一列是需要建造最少的栅栏使得整列均是栅栏。
- 第1列 是
...., 需要4个栅栏。 - 第2列 是
..#., 需要3个栅栏。 - 第3列 是
..#., 需要3个栅栏。 - 第4列 是
.#.#, 需要2个栅栏。 - 第5列 是
...., 需要4个栅栏。
第四列是需要建造最少栅栏的(2个栅栏)。