这题WA了很多遍,要不就是测试数据 3 1 2 3 输出173,要不就是6 5 5 5 5 5 5  输出-1.甚至有时候把程序改的题目上的测试数据都过不了,各种悲摧,其实我喜欢边写程序边想,这是个很差的习惯,我一定要改!!!这题是看别人的提示写出来的,首先设bool型数组f,令 f[i][j]表示一边长为i,另一边长为j的边可以组合出来,然后在所有可以组合出来的情形中找能组合成三角形且面积最大的。f[i][j]能组合出来的条件是对于加入新边li来说是f[i-li][j] 或f[i][j-li]能组合出来,初始条件是f[0][0]能组合出来。因为题目中说了要用掉所有的栏杆,所以我只考虑两条边,剩下的一条边用总长剪这两条边的长就知道了,然后为了这两天边的列举有对称性,可假设i>= j也算是减少运算量吧。能组成三角形的条件是任意两边之和大于第三边,我令第一条边长i <= (总长-1)/2(稍微想一下就知道了,分奇偶讨论一下)第二条边长<= i且和 i一起满足2*(i+j) > 总长,这样的三条边就一定是能组成三角形的了``````

View Code

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 bool f[900][900];
 5 int main()
 6 {
 7     int n,l[50];
 8     int sum =0;
 9     scanf("%d",&n);
10     for(int i=0; i< n; i++)
11     {
12         scanf("%d",&l[i]);
13         sum += l[i];
14     }
15     int m1;
16     m1=(sum-1)/2;
17     memset(f,false,sizeof(f));
18     f[0][0] = true;
19     for(int i=0; i< n; i++)
20     {
21         for(int j = m1; j >= 0; j--)
22         {
23             for(int k = j; k>=0; k--)
24             {
25                 if((j>=l[i] &&f[j-l[i]][k])  || (k >= l[i] && f[j][k - l[i]]))
26                     f[j][k] = true;
27             }
28         }
29     }
30     double max = 0;
31     bool flag= false;
32     for(int j=m1; j>0; j--)
33     {
34         for(int k = j; 2*(j+k) > sum; k--)
35         {
36             double  t=(sum-2*j)*(sum-2*k)*(2*(j+k)-sum)/8.0;
37             if(f[j][k] && t> max)
38             {
39                 flag =true;
40                 max = t;
41             }
42         }
43     }
44     if(!flag)
45         printf("-1\n");
46     else
47     {
48         max = sum/2.0*max;
49         int d = (floor)(sqrt(max)*100);
50         printf("%d\n",d);
51     }
52     return 0;
53 }

转载于:https://www.cnblogs.com/allh123/archive/2013/03/27/2985260.html

所谓的二维背包Triangular Pastures POJ 1948相关推荐

  1. HDU-2159 FATE 二维背包

    这题是一个二维背包的题目,刚开始并没有那样去做,只开了一维的空间来存储状态,结果很多的数据都没有跑过去.其实这题这样来问的话可能就明了很多了,求在指定的容忍值和指定的杀怪数下,求最大能够得到了经验数, ...

  2. HDU-2159 FATE 二维背包

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. 杭电2159-FATE (二维背包运用+详细解释)

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. c++ 动态规划-二维背包 and 潜水员问题

    动态规划 - 二维背包 1.普通二维(费用)背包 01背包问题:给定 n 种物品和一个重量(容量)(限定条件)为 w 的背包,物品 i 的重量是 wi,其价值为 vi.(每种物品只有一个)问:如何选择 ...

  5. 背包问题(恰好背满 二维背包) 总结

    专题训练:点击打开链接  密码:JXFEACM 他人总结:点击打开链接  背包九讲:点击打开链接 其实核心记住: 背包是组合问题 填充性质 元素之间没关系 1. 01背包(右->左) 恰好装满( ...

  6. dp之二维背包poj1837(天平问题 推荐)

    题意:给你c(2<=c<=20)个挂钩,g(2<=g<=20)个砝码,求在将所有砝码(砝码重1~~25)挂到天平(天平长  -15~~15)上,并使得天平平衡的方法数..... ...

  7. 动态规划 —— 背包问题 P05 —— 二维背包

    [问题] 对于每件物品,具有两种不同的体积,选择这件物品必须同时付出这两种代价,对于每种代价都有一个可付出的最大值(背包容量). 问:怎样选择物品可以得到最大的价值? 设:这两种代价分别为代价1和代价 ...

  8. HDU2159 FATE(二维背包、带限制条件的背包问题)

    题目传送门 题意很明显,就不细说了 我们这里可以把剩下的忍耐度看作背包容量,然后价值就是杀了怪所得的经验 用第二维表示杀了q只怪,这样就能用dp[j][q]表示已消耗j点忍耐度,杀了q只怪时的经验值 ...

  9. UVA 10306 e-Coins (二维背包)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

最新文章

  1. js鼠标略过自动选择当前行
  2. ASP.NET中gridview获取当前行的索引值
  3. idea控制台怎么调出来_酸汤饺子最近火了,可是酸汤是怎么调出来的?引起了网友的好奇...
  4. Hadoop官网的一个WordCount程序
  5. 《研磨设计模式》chap22 装饰模式Decorator(2)应用到场景
  6. 路易斯安那州立大学计算机科学,西北路易斯安那州立大学
  7. python打开文件夹的权限_python修改linux中文件(文件夹)的权限属性操作
  8. 如何在Python中建立回归模型
  9. css animation 触发,在JavaScript中触发CSS动画
  10. 横空出世,比Visio快10倍的画图工具来了
  11. KB:Office 365 MX验证出错OWA 打开后Http 404
  12. 计算机应用基础2-excel,《2014计算机应用基础excel2.doc
  13. aspose.words生成pdf字体乱码为方框
  14. MATLAB 插值放大
  15. 无线网卡无法获取dhcp服务器,无线网络无法获取网络IP地址
  16. 阿里云商标注册快速上手笔记(新手图文教程)
  17. 动态使用element-plus 的图标
  18. 西安电子科大版《计算机操作系统》第四版共读——第十一章 多媒体操作系统
  19. NLP-预训练模型-2018-Bert-解析:BertForMaskedLM
  20. 论文阅读:Channel Augmented Joint Learning for Visible-Infrared Recognition

热门文章

  1. Python,美国顶尖大学里最受欢迎的编程入门语言
  2. LOL手游王者局诺手教学,3级压制阿卡丽,全程一个拼字
  3. 【蓝桥杯Java_C组·从零开始卷】第五节(二)、BigDecimal的使用
  4. Oracle goldengate 11g错误汇总
  5. 异常-自定义异常 和 throw和throws的区别
  6. hdu3415 单调队列模板题
  7. unity, 非public变量需要加[SerializeField]才能序列化
  8. Fedora9中的gcc
  9. [转]仿163网盘无刷新文件上传系统
  10. 【数据结构总结】第七章 查找