最大周长三角形问题
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;
}
相关文章推荐
- C# 5.0 与 .Net 4.5 学习(三)Interlocked
- Win10 Mobile预览版10572被隐藏的新功能 下载进度条回归
- 单链表之在不知道头指针的情况下删除指定结点
- Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程(转载)
- 通过curl命令获取公网IP地址
- WCF错误在nhibernate的错误
- win7设置电脑定时关机
- 买卖股票的最佳时机I II III IV
- Windows操作系统添加VirtIO驱动图文教程
- swing password密码框的处理
- redis可视化客户端
- 单链表之反转链表
- 河北民间组织管理系统软件
- linux的free命令
- 2015年工作中遇到的问题101-110
- 2015年工作中遇到的问题101-110
- 2015年工作中遇到的问题101-110
- 开源 java CMS - FreeCMS2.4 工作流管理
- 用两个队列实现一个栈
- java单引号和双引号的区别