luogu#P6600. 「EZEC-2」字母
「EZEC-2」字母
题目背景
给你一个 矩阵,我们希望你从中找到由连续的 组成的「字母 T」。
题目描述
「字母 T」由一横和一竖组成,竖一定在横的下方(您可以借助英文字母 T
辅助理解)。
在本题中,我们定义「横」为组成「字母 T」的水平线段,「竖」为组成「字母 T」的竖直线段。
注意「横」与「竖」的公共部分同时计入横长和竖长。
合法的「字母 T」的「横」长必须为奇数且「竖」与「横」交于「横」的中点,「横」长最小为 ,「竖」长最小为 。
如:
$$ \begin{array}{ccc} 0\color{Red}111\color{black}1\\ 00\color{Red}1\color{black}01 \end{array} $$只含有一个合法的「字母 T」(即标红部分)。
现在给你一个 的 矩阵,请你求出在这个矩阵中合法的「字母 T」中,一共有多少个满足以下条件的「字母 T」。
设某个合法的「字母 T」的「横」长为 ,「竖」长为 ,有:
两个「字母 T」不相同即两个「字母 T」的 「横」长 或 「竖」长 或 最左上角的坐标 不同。
输入格式
第一行,两个整数 ,表示给定的 矩阵共有 行 列。
第二行,四个整数 。
接下来 行,每行 个数,只可能是 / ,为给定的矩阵。
输出格式
输出一个整数,表示有多少个满足条件且合法的「字母 T」。
5 5
3 3 18 9
11111
01110
11111
01110
11111
2
5 5
3 3 15 7
11111
01110
11111
01110
11111
7
10 10
5 4 40 11
0011111111
1011110101
1111111111
1001111101
1111101111
1111110110
0111011101
0111111110
0011111111
0111111101
8
提示
【样例解释 #1】
$$ \begin{array}{ccc} \color{Red}11111\qquad11111\\01\color{Red}1\color{black}10\qquad01\color{Red}1\color{black}10\\ 11\color{Red}1\color{black}11\qquad11\color{Red}1\color{black}11\\ 01\color{Red}1\color{black}10\qquad01\color{Red}1\color{black}10\\ 11111\qquad11\color{Red}1\color{black}11\\\\ 第\ 1\ 个\qquad第\ 2\ 个 \end{array} $$除了以上两个「字母 T」,没有其他满足条件且合法的「字母 T」,故输出 。
【数据范围】
| 测试点编号 | | | | |
| :----------: | :----------: | :----------: | :----------: | :----------: |
| | | |||
| | | |||
| | | |||
| | ||||
| | ||||
| | ||||
对于 的数据,满足 ,,,。