您的位置:首页 > 其它

最大周长三角形问题

2015-10-22 08:41 429 查看


一.题意

n个木棍,取出三根组成周长尽量长的三角形.输出最大周长.


二.nlogn解法

充要条件 a<b+c (a>=b>=c)



将木棍从大到小排序,设A是最优解的最大边(B+C>A且A>=B>=C),即存在一个三角形ABC,则三角形ABD不会为周长最长的三角形,所以解法为将木棍从大到小排序,检查相邻的三个木棍即可.

[cpp] view
plaincopy

int searchC(int ary[]){

for(c = n - 1; c >= 2; c--){

// b=c-1; a=c-2;

if( (ary[c] - ary[c-1]) < ary[c-2]){

return ary[c] + ary[c-1] + ary[c-2];

}

}

return -1;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: