DFS 火柴棒拼三角形問題

2021-10-04 10:15:26 字數 552 閱讀 1845

有若干根火柴棍,問能否拼成乙個等邊三角形

思路是先判斷火柴棍長度總和是否為3的倍數,若不是,就不用判斷了,若是再進行dfs。

dfs的過程如下

#include

using

namespace std;

int n, sum, a[50]

;bool f, vis[50]

;void

dfs(

int p,

int s,

int st)

//目前已經找到了p條若干火柴組成的和為sum/3的邊,

if(p ==3)

if(s == sum /3)

//目前已經找到了一條邊

for(

int i =

0; i < n; i++)}

}int

main()

if(sum %3!=

0)else

else

}return0;

}

符號三角形(dfs)

問題描述 如下圖是由14個 和14個 組成的符號三角形,2個同號下面都是 2個異號下面都是 在一般情況下,符號三角形的第一行有n個符號,符號三角形問題要求對於給定的n,計算有多少個不同的符號三角形,使其所含的 和 的個數相同。解題思路 1 不斷改變第一行每個符號,搜尋符合條件的解,可以使用遞迴回溯 ...

三角形問題

問題及 檔名稱 main.cpp 作 者 李磊濤 版 本 號 v1.0 問題描述 輸出三角形的周長和面積。輸入描述 無。程式輸出 輸出三角形的周長和面積。include includeusing namespace std class void setabc double x,double y,do...

拼三角形(csustoj2010

拼三角形 description cwolf9有n根木棍,他現在想將他們拼成一些三角形,問最多能拼成多少三角形,每根木棍只能用一次。input 多組輸入 每組資料第一行乙個數 nn,1 leq n leq 18 1 n 18 表示有n根木棍。接下來一行,nn個數記為a iai 表示第ii根木棍的長度...