hdu 5135 Little Zu Chongzhi's Triangles
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's Triangles (dfs暴搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5135 题目大意:给你n条边,选出若干条边,组成若干个三角形,使得面积和最大.输出最大的面积和. 先将边 ...
- HDU 5135.Little Zu Chongzhi's Triangles-字符串 (2014ACM/ICPC亚洲区广州站-重现赛)
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
- Little Zu Chongzhi'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's Triangles(暴力)
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- UVALive 7077 Little Zu Chongzhi's Triangles (有序序列和三角形的关系)
这个题--我上来就给读错了,我以为最后是一个三角形,一条边可以由多个小棒组成,所以想到了状态压缩各种各样的东西,最后成功了--结果发现样例过不了,三条黑线就在我的脑袋上挂着,改正了以后我发现N非常小, ...
- HDU5131-Song Jiang's rank list HDU5135-Little Zu Chongzhi'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's Triangles(14广州I)
题目传送门 题意:有n根木棍,三根可能能够构成三角形,选出最多的三角形,问最大面积 分析:看到这个数据范围应该想到状压DP,这次我想到了.0010101的状态中,1表示第i根木棍选择,0表示没选,每一 ...
- hdu 5135(2014广州—状态dp)
t题意:给你n条边,构造任意个三角形,一个三角形恰好只用3条边,每条边只能一次,求面积最大值 思路: 最开始想的是先排序从大到小取,但感觉并不怎么靠谱. 最多12条边,所以可以求出所有可能的三角形面积 ...
随机推荐
- zTree实现地市县三级级联报错(一)
zTree实现地市县三级级联 1.详细报错例如以下: java.lang.IllegalStateException: Failed to load ApplicationContext at org ...
- 利用ssh传输文件 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:47 58人阅读 评论(0) 收藏
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本 ...
- 支持MySql的数据库自动分表工具DBShardTools发布
支持MySql的数据库自动分表工具DBShardTools发布 前段时间参与了公司的一个项目,这个项目的特点是数据量.访问量都比较大,考虑使用数据库水平分表策略,Google了大半天,竟然没有找到分表 ...
- python装饰实现线程同步
import threading def tryfinally(finallyf): u"returns a decorator that adds try/finally behavi ...
- qt 学习之路 :QML 语法
前面我们已经见识过 QML 文档.一个 QML 文档分为 import 和对象声明两部分.如果你要使用 Qt Quick,就需要 import QtQuick 2.QML 是一种声明语言,用于描述程序 ...
- date和long的相互转换
import java.text.SimpleDateFormat; import java.util.Date; public class T { public static void main(S ...
- ES6数组去重
今天五一,在出去玩之前赶紧写篇博客,时刻不要忘记学习^_^!! 提到数组去重,想必大家都不陌生,会的同学可能噼里啪啦写出好几个,下面来看看之前常见的去重代码: 'use strict'; var ar ...
- HTML5 文件域+FileReader 读取文件(二)
一.读取文本文件内容,指定字符编码 <div class="container"> <!--文本文件验证--> <input type="f ...
- asp.net数据导出到excel表格,并设置表格样式
1.首先在项目中添加引用
- OpenWrt启动过程分析
openwrt是通过一系列shell脚本进行启动流程的组织,下面是启动流程的提纲.如 果想详细了解启动的过程,则需要仔细走读脚本文件. 1. 在make menuconfig 选择target平台 B ...