#98. 剪纸

剪纸

附加文件

【题目描述】

小 Q 找到了一张矩形纸片,该纸片是一个由 N × M 个格子组成的网格图,但可能有些格子是坏格子。小 Q 想沿着纸片边缘或网格线裁剪出一个矩形,这个矩形内不能有坏格子。他希望知道有多少种可行的裁剪方案。于是小 Q 找到了即将参加全国信息学竞赛的你,你能帮助他么?

注:不裁剪也可能是一种可行的裁剪方案。

【输入格式】

第一行包含两个整数 N 和 M,分别表示矩形纸片的长和宽。

接下来的 N 行包含一个 N × M 的 01 矩阵,表示这张矩形纸片中格子的状态(0 表示坏格子,1 表示好格子)。

【输出格式】

包含一个整数,表示不同的裁剪方案数

【样例输入】

2 3
1 0 1
1 1 0

【样例输出】

6

【样例解释】

样例中,有 4 种方法可以裁剪出一个 1×1 的矩形,有 2 种方法可以裁剪出一个 1×2(或 2×1)的矩形

【数据范围】

共 25 个测试点,其中:

测试点编号 行数n= 列数m= 备注
1 10 15
2 15
3 50
4
5
6 150
7
8
9
10
11 2000 所有格子均为好格子
12 3000 3000
13 2500 有且仅有一个格子是坏格子
14 3000 2500
15 200
16 500
17
18
19 1000 1000
20
21 1500
22 2500
23
24 3000
25