对于每个格子如果出现了tzg三个字母中的一个,都有可能会出现符合条件的三角形。那么我们枚举三角形的其中一个顶点,那么另外两个顶点就会存在于该点同一行和同一列,所以我们可以统计出三个单词每行每列的个数,当出现符合条件的单词时,将另外的两个单词分别在同行和同列,同列和同行的情况两两组合。
C++
#include <bits/stdc++.h>
给定n个长为m的字符串,在中间找出有多少个tzg这个单词,要求这三个字母所在位置连起来可以构成一个一条直角边水平的直角三角形。
第一行输入两个正整数n,m,用空格隔开,代表矩阵的行数和列数。
接下来的n行,每行输入一个长度为m的字符串,代表游游拿到的矩阵。
1≤n,m≤1000
输出一个整数,代表满足条件的三角形个数
输入
2 3
tzg
zga
输出
3
说明
(一个叠加图形,不好画出来)