EOJ 小花梨的三角形(列舉)

2021-09-22 23:00:32 字數 1228 閱讀 5161

description

小花梨現在有乙個n層三角形圖(參考下圖),第 i 層有2i − 1個邊長為1的等邊三角形。

每個交點處存在乙個字元,總共有n + 1層字元,第 i 層有 i 個字元。

小花梨用等邊三角形三個頂點上的字元來表示這個三角形,兩個等邊三角形如果它們的三個

頂點字元相同(不區分順序)則視為同一類等邊三角形。小花梨想知道總共存在多少種不同類

別的等邊三角形。

input

第一行為正整數n,表示三角形層數(1 ≤ n ≤ 100)。

接下來n + 1行,第 i 行輸入 i 個字元,表示第 i 層的字元。(字元只包含小寫字母"a − z")

output

輸出乙個整數表示存在多少種不同類別的三角形

樣例一:只存在頂點為(a,b,c)的三角形

樣例二:存在頂點為(a,b,b) 、 (a,c,c) 、 (a,b,c)的3類不同的三角形

樣例三:只存在頂點為(a,a,a)的三角形

三角形有兩種可能,一種是尖朝上的,還有一種尖朝下的

第一種:這裡可以列舉三角形的第乙個點(i,j),然後列舉邊長 d ,其餘兩個點就是(i+d,j),(i+d,j+d) 

第二種:列舉第乙個點 (i,j)和邊長 d ,這裡另外兩個點就是 (i+d,j),(i,j+d)

另外就是需要注意邊界情況

#include#include#include#include#include#include#include#include#include#includeconst int maxn=1e5+5;

typedef long long ll;

using namespace std;

char cp[105][105];

sets;

int main()

} for(int i=1;i<=n;i++)

} }for(int i=1;i<=n;i++)

} }

int count=s.size() ;

printf("%d\n",count);

return 0;

}

小花梨的三角形

description 小花梨現在有乙個?層三角形圖 參考下圖 第?層有2?1個邊長為1的等邊三角形。每個交點處存在乙個字元,總共有?1層字元,第?層有?個字元。小花梨用等邊三角形三個頂點上的字元來表示這個三角形,兩個等邊三角形如果它們的三個 頂點字元相同 不區分順序 則視為同一類等邊三角形。小花梨...

小花梨的三角形

題目描述 小花梨現在有乙個n層三角形圖 參考下圖 第i層有2i 1個邊長為1的等邊三角形。每個交點處存在乙個字元,總共有n 1層字元,第i層有i個字元。小花梨用等邊三角形三個頂點上的字元來表示這個三角形,兩個等邊三角形如果它們的三個頂點字元相同 不區分順序 則視為同一類等邊三角形。小花梨想知道總共存...

B 小花梨的三角形

b.小花梨的三角形 這個題目我真的是感觸良多啊,怎麼說呢,在乙個上三角矩陣裡面找出所有三角形的問題,正的三角形可以從第乙個頂點開始遍歷,設乙個方程 i,j i k,j i k,j k 來表示三角形的三個頂點,i表示共有幾層,j表示每層有幾個頂點,k表示從頂點向下走的距離,倒著的三角形可以這樣表示,顯...