描述
给定一个由字符’.‘和’#‘组成的字符方格(’.‘表示空白),请你数一数里面有多少个不同的等边字符三角形。等边字符三角形只由’#'组成,且只能有下列形状(注意:不存在边长为偶数的等边三角形):
以此类推…
输入
多组数据,每组数据的第一行为一个整数N(1 <= N <= 256),表示一个方格的宽度,接下来有N行,每行N个字符用来表示方格。
输出
每组输出一个整数,表示方格里存在的不同等边三角形个数。
样例输入
5
…
.###.
.###.
…
样例输出
16
提示
样例中存在16个等边三角形,其中11个长度为1,4个长度为3,1个长度为5。
分析:
暴力大法好(然而O(n^4))
磊同学想的前缀和O(n^3),
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int N,a[257][257];
char c[257][257];
while(cin>>N)
{
memset(a