http://acm.hdu.edu.cn/showproblem.php?pid=5135
题意:给你N个木棍的长度,然后让你组成三角形,问你组成的三角形的和最大是多少?
思路:先求出可以组成的所有的三角形,然后状压dp就可以。求所有的三角形也可以用状压,也可以三重循环求。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define maxn 1<<13
using namespace std; int n;
int a[];
int b[];
int cc[maxn];
double ss[maxn];
double ans;
double dp[maxn]; bool vis[]; int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==) break;
memset(cc,,sizeof(cc));
memset(dp,,sizeof(dp));
memset(ss,,sizeof(ss));
for(int i=; i<n; i++)
{
scanf("%d",&a[i]);
}
int t1=;
for(int i=; i<(<<n); i++)
{
memset(b,,sizeof(b));
int cnt=;
for(int j=; j<n; j++)
{
if((<<j)&i) cnt++;
}
if(cnt==)
{
int c=;
for(int j=; j<n; j++)
{
if((<<j)&i)
{
b[c++]=a[j];
}
}
if((b[]<b[]+b[])&&(b[]<b[]+b[])&&(b[]<b[]+b[]))
{
cc[t1]=i;
double p=(double)((b[]+b[]+b[])*1.0/);
double s=sqrt(p*(p-b[]*1.0)*(p-b[]*1.0)*(p-b[]*1.0));
ss[t1++]=s;
}
}
}
double ans=;
for(int i=; i<(<<n); i++)
{
for(int j=; j<t1; j++)
{
if((i&(cc[j]))==)
{
dp[i|cc[j]]=max(dp[i|cc[j]],dp[i]+ss[j]);
ans=max(ans,dp[i|cc[j]]);
}
}
}
printf("%.2lf\n",ans);
}
return ;
}
hdu 5135 Little Zu Chongzhi's Triangles的更多相关文章
-
[HDU 5135] Little Zu Chongzhi&#39;s Triangles (dfs暴搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5135 题目大意:给你n条边,选出若干条边,组成若干个三角形,使得面积和最大.输出最大的面积和. 先将边 ...
-
HDU 5135.Little Zu Chongzhi&#39;s Triangles-字符串 (2014ACM/ICPC亚洲区广州站-重现赛)
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
-
Little Zu Chongzhi&#39;s Triangles
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
-
hdu5135 Little Zu Chongzhi's Triangles
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total Submissi ...
-
UVALive 7077 - Little Zu Chongzhi&#39;s Triangles(暴力)
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
-
UVALive 7077 Little Zu Chongzhi&#39;s Triangles (有序序列和三角形的关系)
这个题--我上来就给读错了,我以为最后是一个三角形,一条边可以由多个小棒组成,所以想到了状态压缩各种各样的东西,最后成功了--结果发现样例过不了,三条黑线就在我的脑袋上挂着,改正了以后我发现N非常小, ...
-
HDU5131-Song Jiang&#39;s rank list HDU5135-Little Zu Chongzhi&#39;s Triangles(大佬写的)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
-
URAL 7077 Little Zu Chongzhi&#39;s Triangles(14广州I)
题目传送门 题意:有n根木棍,三根可能能够构成三角形,选出最多的三角形,问最大面积 分析:看到这个数据范围应该想到状压DP,这次我想到了.0010101的状态中,1表示第i根木棍选择,0表示没选,每一 ...
-
hdu 5135(2014广州—状态dp)
t题意:给你n条边,构造任意个三角形,一个三角形恰好只用3条边,每条边只能一次,求面积最大值 思路: 最开始想的是先排序从大到小取,但感觉并不怎么靠谱. 最多12条边,所以可以求出所有可能的三角形面积 ...
随机推荐
-
Beta版本冲刺———第二天
会议照片: 项目燃尽图: 1.项目进展: 昨天的困难:分数排行榜的设计 今天解决的进度:完成了界面优化以及建立新的排行榜选项卡界面. 明天要做的事情:分数排行榜的功能设计 2.每个人每天做的事情 郭怡 ...
-
2-sat(and,or,xor)poj3678
Katu Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7949 Accepted: 2914 Descr ...
-
Struts2+Uploadify文件上传使用详解
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...
-
Cocos2dx项目移植Android平台
链接地址:http://blog.csdn.net/iuncle/article/details/24772183 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.Classes目录下存放. ...
-
豌豆夹Redis解决方案Codis源码剖析:Proxy代理
豌豆夹Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy base ...
-
Qt编写自定义控件属性设计器
以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用场景需 ...
-
webform ajax 异步请求
第一种就是对应方法的请求 虽然对应方法 但还是会刷新页面 webform是基于事件的 每次请求都会出发pageload <script> $(function () { $("# ...
-
Zookeeper学习笔记——2 Shell和Java API的使用
ZooKeeper的使用一般都接触不到,因为平时工作甚少直接使用ZK.但是通过手动操作一下ZK,还是能对其中的门道了解各一二. shell 常用命令 help 查看所有支持的命令 [zk: local ...
-
AS(Android Studio)不停的updating indices
有同事问我他as进入后updating iindices个不停 就在此处一直刷一直刷,虽然对他项目没什么影响,但总归很是烦人,解决办法如下: 打开File->Invalidate Caches ...
-
Python+Selenium笔记(十六)屏幕截图
(一) 方法 方法 简单说明 save_screenshot(filename) 获取当前屏幕截图并保存为指定文件 filename:路径/文件名 get_screenshot_as_base64 ...