CSPSMK07C. 考试(exam)

提交3 通过2
通过率66.7%
文件IO启用
输入文件exam.in
输出文件exam.out
时间限制1000ms
内存限制512MiB
    ID: 14549 传统题 文件IO 输入文件:exam.in 输出文件:exam.out 1000ms 512MiB 尝试: 3 已通过: 2 难度: 提高 上传者: 标签>C++CSP-S考前模拟

题目描述

题目描述

在 noi 考试的前夕,教室已经准备就绪。我们可以将教室视为一个 n×mn \times m 的矩阵,每个单元格代表一个座位。矩阵的每个单元格可以取以下三种值之一:

  • 22 表示已被行为良好的学生占用的座位。这些学生很负责,老师不担心他们。

  • 11 表示老师标记为禁止入座的座位。这些座位无人就坐。

  • 00 表示空座位,可供调皮学生就坐。

调皮学生尚未到达,但即将到来。老师可以决定哪些空座位将由调皮学生占据。

行为良好的学生从不作弊,但如果他们与调皮学生相邻,则可能导致调皮学生作弊。如果一个调皮学生至少有一个邻座(上、下、左、右四个方向之一),无论是行为良好的学生还是其他调皮学生,该调皮学生就会作弊。

请确定教室中可以就坐的学生总数(包括行为良好的学生和调皮学生)的最大值,使得考试期间不会发生作弊行为。

输入格式

第一行包含自然数 n,mn, m,含义如题目描述所述。

接下来的 nn 行,每行包含 mm 个字符,每个字符为 00、11 或 22,表示题目中描述的矩阵。

输出格式

输出一行一个整数,表示教室中可以就坐且考试期间不发生作弊行为的学生总数的最大值。

输入样例 #1

4 4
0100
0202
1000
2120

输出样例 #1

6

输入样例 #2

4 4
0000
0000
0000
0000

输出样例 #2

8

说明提示

第二个样例的解释:老师将在第 1 行和第 3 行的奇数列安排学生,在第 2 行和第 4 行的偶数列安排学生。这样安排可以确保没有学生会作弊。

计分方式

输入样例 #3

1 1
1

输出样例 #3

0

数据范围

子任务 分值 约束条件
1 8 n,m≤4n, m \le 4
2 15 矩阵中的所有单元格均为 00。
3 16 n=2n = 2
4 42 n≤15n \le 15
5 19 无额外限制。

(1≤n,m≤801 \le n, m \le 80)