CF435D Special Grid

题目描述

给定一个 $n \times m$ 的网格,其部分节点为黑色,其余节点为白色。此外,这不是一个普通的网格——网格中的每个单元格都画有对角线。 下图是一个 $3 \times 5$ 大小的网格示例。该网格有 $4$ 个黑色节点,其余 $11$ 个节点为白色。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF435D/2a129804a620070f064ad9f06e8026399abd5ad7.png) 你的任务是统计该网格上满足以下条件的三角形个数: - 三个角都在白色节点上,且面积大于 $0$。 - 所有边都沿着网格线(水平、垂直或对角线); - 任意一条边上不能包含黑色节点。

输入格式

第一行包含两个整数 $n$ 和 $m$,$2 \leq n, m \leq 400$。接下来的 $n$ 行,每行包含 $m$ 个字符('0' 或 '1'),用以描述网格。若第 $i$ 行第 $j$ 个字符为 '0',则该位置为白色节点,否则为黑色节点。 横向编号自上至下从 $1$ 开始,纵向编号自左至右从 $1$ 开始。

输出格式

输出一个整数,表示满足条件的三角形数量。

说明/提示

下图中的红色和蓝色三角形为样例中的合法三角形。其中绿色三角形为非法三角形,因为并非所有边都沿着网格线。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF435D/f9604961f586e4f0664ffd8ad99709dfacd15973.png) 由 ChatGPT 5 翻译