#P3400. 仓鼠窝(Hamster Nest)
0
仓鼠窝(Hamster Nest)
仓鼠窝(Hamster Nest)
题目描述
萌萌哒的 Created equal 是一只小仓鼠,小仓鼠自然有仓鼠窝啦。
仓鼠窝是一个由 个格子组成的行数为 、列数为 的矩阵。小仓鼠现在想要知道,这个矩阵中有多少个子矩阵。
比如说有一个 的矩阵,那么 的子矩阵有 个, 的子矩阵有 个, 的子矩阵有 个, 的子矩阵有 个, 的子矩阵有 个, 的子矩阵有 个,所以子矩阵共有 个。
可是仓鼠窝中有的格子被破坏了。现在小仓鼠想要知道,有多少个内部不含被破坏的格子的子矩阵。
输入格式
第一行两个正整数 和 ,分别表示仓鼠窝的行数 ,列数 。
接下来 行,每行 个数,每个数代表对应的格子,非 即 。若为 ,表示这个格子被破坏;反之代表这个格子是完好无损的。
输出格式
仅一个正整数,表示未被破坏的子矩阵的个数。
样例输入 #1
3 4
1 1 1 1
1 0 1 1
1 1 0 1
样例输出 #1
26
数据范围
本题时限 ,内存限制 ,因新评测机速度较为接近 NOIP 评测机速度,请注意常数问题带来的影响。
| 数据编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| 所有格子均未被破坏 | |||
| 有且仅有一个格子被破坏 | |||
| 无 | |||
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1800。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 20 | 2~7 | 小规模 n,m≤200 / 边界 1×1 / 全0矩阵输出0 |
| 2 | 15 | 8~11 | Hack: 3000×3000全1矩阵答案超2×10^13 / Hack: 仅中心1格被破坏 / Hack: 棋盘格01交替 |
| 3 | 30 | 12~20 | 大规模 n,m≤3000 单调栈子矩阵计数压力 |
| 4 | 25 | 21~25 | 随机破损率矩阵回归测试 |
出处:原题链接