CF628E Zbazi in Zeydabad
题目描述
一位游客想前往 Zeydabad 国旅行,体验当地的 Zbazi 游戏。
Zeydabad 国可以看作一个由 $n$ 行 $m$ 列组成的矩形表格。该国的每个格子要么是 'z',要么是 '.'。
这位游客之所以知道这里被称为 Zeydabad,是因为这个国家里有许多“Z 形模式”。一个“Z 形模式”指的是一个正方形,其副对角线(从左上角到右下角的对角线)上所有的格子必须全为 'z',并且该正方形的最上面一行和最下面一行的所有格子也都必须为 'z'。正方形中其余的格子可以是任意字符。

注意,一个“Z 形模式”也可以只是单个格子(见样例)。
因此他的目的是想要统计出 Zeydabad 国中所有“Z 形模式”的个数(掌握该技能对于玩 Zbazi 十分必要)。
现在你的任务就是帮助游客统计出“Z 形模式”的数量。
由于输入输出数据量可能非常大,建议使用高效的输入输出方式:例如在 C++ 中使用 gets/scanf/printf 代替 getline/cin/cout,在 Java 中使用 BufferedReader/PrintWriter 代替 Scanner/System.out。
输入格式
第一行包含两个整数 $n, m$($1 \leq n, m \leq 3000$),分别代表矩形表格的行数和列数。
接下来的 $n$ 行,每行包含 $m$ 个字符 'z' 或 '.',描述了 Zeydabad 国的地图。
输出格式
输出一个整数 $a$,表示 Zeydabad 国中“Z 形模式”的总个数。
说明/提示
由 ChatGPT 5 翻译