一、題目
有n根棍子,棍子i的長度為ai。想要從中選出三根棍子,使其構成的三角形的周長最大。請輸出最大的周長,如果無法構成三角形,則輸出0。
二、解法
1)思路:首先根據長度排序(假設從小到大),貪心的選取(從大到小的遍歷)如果與前兩根構成三角形,則跳出迴圈。
正確性:如果一根棍子與前兩個都不能構成三角形,與更前面的更不能構成三角形
2)**:
1 #include2 #include3using
namespace
std;
4const
int maxn = 100 + 10;5
intlen[maxn];67
intmain()821
}22 printf("%d"
, res);
23return0;
24 }
挑戰程式設計競賽(3)
給定整數a1,a2,an,判斷是否可以從中選出若干數,使他們的和恰好為k。1 n 20 1e8 ai 1e8 1e8 k 1e8 樣例1input 4 1 2 4 7 13 output yes 13 2 4 7 樣例2input 4 1 2 4 7 15 output no dfs include...
挑戰程式設計競賽 樹
二叉樹的表達 樹的遍歷 從根r到結點x的路徑長度為x的深度 depth 結點x到葉結點的最大路徑長度成為結點x的高。請編寫乙個程式,輸出給定有根樹t中各節點u的資訊。採用 左子右兄弟表示法 1 結點u的父節點 2 結點u最左側的子結點 3 結點u右側緊鄰的兄弟結點 引用u.parent即可知道結點u...
挑戰程式設計競賽 硬幣遊戲
首先明確此為0和博弈問題,我們始終以ali cealice alic e的觀點來看待問題。定義ali cealice alic e贏為可解.因此我們採用記憶化搜尋,整個搜尋空間最多為o x p o xp o xp 便可以解決此問題。include includeusing namespace std...