HDU 5135 Little Zu Chongzhi's Triangles (2014 ACM-ICPC广州站)
来源:互联网 发布:国外域名交易论坛 编辑:程序博客网 时间:2024/05/15 23:52
题目链接:题目
题目大意:给你N的数,求能组成所有三角行的面积和的最大值
解题思路:状态压缩dp,还没接触过dp,,,,感觉好难啊,,
我也不会写,说下思路把,就是枚举所有的状态,,其中三个一组,组成三角行,并且边不能重复用
#include<cstdio>#include<algorithm>#include<cstring>#include<cmath> using namespace std;const int maxn = 20;const int maxm = (1<<14);int a[maxn];double dp[maxm];struct Node{int choice;double S;}node[maxm];double area(int a,int b,int c){double p=(a+b+c)*1.0/2;return sqrt(p*(p-a)*(p-b)*(p-c));}int main(){int n;while(~scanf("%d",&n)&&n){memset(dp,0,sizeof(dp));for(int i=0;i<n;i++) scanf("%d",&a[i]);sort(a,a+n);int cnt=0;for(int i=0;i<(1<<n);i++){int tmp[maxn];int loc = 0;for(int j=0;j<n;j++){if(i&(1<<j)){tmp[loc++]=a[j];}}if(loc != 3 || tmp[0] + tmp[1] <=tmp[2]) continue;node[cnt].choice=i;node[cnt].S=area(tmp[0],tmp[1],tmp[2]);cnt++;}double ans=0;for(int i=0;i< (1<<n);i++){for(int j=0;j<cnt;j++){if((i & node[j].choice)==0){dp[i | node[j].choice] = max(dp[i|node[j].choice],dp[i]+node[j].S);ans=max(ans,dp[i|node[j].choice]);}}}printf("%.2lf\n",ans);}return 0;}
0 0
- HDU 5135 Little Zu Chongzhi's Triangles (2014 ACM-ICPC广州站)
- hdu 5135 Little Zu Chongzhi's Triangles 2014ACM/ICPC亚洲区广州站-重现赛
- HDU 5135 Little Zu Chongzhi's Triangles(贪心||状压dp)2014ICPC 广州站现场赛
- 2014ACM/ICPC亚洲区广州站 Little Zu Chongzhi's Triangles
- HDU 5135 Little Zu Chongzhi's Triangles(2014亚洲区广州站现场赛)
- HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
- HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
- HDU 5135 Little Zu Chongzhi's Triangles
- HDU 5135 Little Zu Chongzhi's Triangles
- HDU 5135 Little Zu Chongzhi's Triangles
- HDU 5135 Little Zu Chongzhi's Triangles
- HDU 5135 Little Zu Chongzhi's Triangles
- hdu 5135 Little Zu Chongzhi's Triangles(贪心)
- HDU 5135 Little Zu Chongzhi's Triangles(贪心)
- HDU 5135 Little Zu Chongzhi's Triangles(数学题)
- HDU 5135 Little Zu Chongzhi's Triangles(贪心)
- 2014广州站 I - Little Zu Chongzhi's Triangles(贪心)
- [ACM] HDU 5135 Little Zu Chongzhi's Triangles (一堆木棍组成三角形最大面积)
- javascript中,==操作的特殊情况总结
- 实现一个函数,这个函数的返回值是一个值value的二进制位从作到右翻转后的结果
- 1.http权威指南:url与资源
- 解决word 2016中不能加载EndNote x7
- MAC安装MySQL
- HDU 5135 Little Zu Chongzhi's Triangles (2014 ACM-ICPC广州站)
- Struts 下的Mysql分页技术
- iic通讯协议
- ffmpeg编程二
- 【LeetCode】300. Longest Increasing Subsequence
- ubuntu 运行可执行文件时出现问题:error while loading shared libraries
- 一天上课
- shell 学习笔记 (二)——环境变量
- 机器学习中,从一张图片中提取出感兴趣的区域(以交通标志为例)