P6600 「EZEC-2」字母

题目背景

给你一个 $01$ 矩阵,我们希望你从中找到由连续的 $1$ 组成的「字母 T」。

题目描述

「字母 T」由一横和一竖组成,竖一定在横的下方(您可以借助英文字母 `T` 辅助理解)。 在本题中,我们定义「横」为组成「字母 T」的水平线段,「竖」为组成「字母 T」的竖直线段。 注意「横」与「竖」的公共部分同时计入横长和竖长。 **合法的「字母 T」的「横」长必须为奇数且「竖」与「横」交于「横」的中点,「横」长最小为 $3$ ,「竖」长最小为 $2$。** 如: $$ \begin{array}{ccc} 0\color{Red}111\color{black}1\\ 00\color{Red}1\color{black}01 \end{array} $$ **只含有**一个合法的「字母 T」(即标红部分)。 现在给你一个 $n \times m$ 的 $01$ 矩阵,请你求出在这个矩阵中**合法**的「字母 T」中,一共有多少个**满足以下条件**的「字母 T」。 设某个合法的「字母 T」的「横」长为 $w$,「竖」长为 $h$,有: - $w\ge a$ - $h\ge b$ - $w\times h \ge s$ - $w+h\ge x$ 两个「字母 T」不相同即两个「字母 T」的 **「横」长** 或 **「竖」长** 或 **最左上角的坐标** 不同。

输入格式

输出格式

说明/提示

**【样例解释 #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」,故输出 $2$。 **【数据范围】** | 测试点编号 | $n,m\le$ | $a,b\le$ | $s\le$ | $x\le$ | | :----------: | :----------: | :----------: | :----------: | :----------: | | $1 \sim 4$ | $100$ | $100$ |$10^4$|$200$| | $5 \sim 8$ | $500$ | $500$ |$2.5\times 10^5$|$10^4$| | $9,10$ | $3\times 10^3$ | $0$ |$0$|$0$| | $11\sim 13$ | $3\times 10^3$ |$3\times 10^3$|$0$|$6\times 10^3$| | $14\sim 16$ | $3\times 10^3$ |$3\times 10^3$|$9\times 10^6$|$0$| | $17\sim 20$ | $3\times 10^3$ |$3\times 10^3$|$9\times 10^6$|$6\times 10^3$| 对于 $100\%$ 的数据,满足 $1 \le n,m \le 3\times 10^3$,$0 \le a,b \le 3\times10^3$,$0 \le s \le 9\times10^6$,$\space0 \le x \le 6\times10^3$。