题目链接:http://poj.org/problem?id=1948 题目大意:给最多40根木棍,每根长度不超过40,要用完所有的木棍构成面积最大的三角形,求出最大的面积。 思路:设f[i][j]为第一条边长度为i,第二条边长度为j是否可行 状态转移方程: if(j>=a[i]) f[j][k]=f[j][k]||f[j-a[i]][k] if(k>=a[i]) f[j][k]=f[j][k]||f[j][k-a[i]]


#include
#include
#include
using namespace std;int f[810][810];
int a[50];void swap(int &a, int &b){int tmp = a;a = b;b = tmp;
}int san(int a,int b,int c)
{if(a > b)   swap(a,b);if(a > c)   swap(a,c);if(b > c)   swap(b,c);if(a + b < c)   return -1;double p = (a + b + c) * 1.0 / 2;double ret;ret = sqrt(p * (p-a) * (p-b) * (p-c)) * 100;return (int)ret;
}int main(){int n;scanf("%d",&n);int sum = 0;for (int i = 0; i < n; i ++){scanf("%d",&a[i]);sum += a[i];}memset(f, 0, sizeof(f));f[0][0] = 1;int ban = sum / 2;for (int k = 0; k < n; k ++){for (int i = ban; i >= 0; i --){for (int j = ban; j >= 0; j --){if (i - a[k] >= 0){f[i][j] = f[i][j] | f[i - a[k]][j];}if (j - a[k] >= 0){f[i][j] = f[i][j] | f[i][j - a[k]];}}}}int max = -1;for (int i = 1; i <= ban; i ++){for (int j = 1; j <= ban; j ++){if (f[i][j]){if (san(i, j, sum - i - j) > max){max = san(i, j, sum - i - j);}}}}printf("%d\n", max);return 0;
}

转载于:https://www.cnblogs.com/AbandonZHANG/archive/2012/12/10/4114186.html

POJ 1948 Triangular Pastures (二维01背包)相关推荐

  1. 二维背包问题(二维0-1背包)

    二维0-1背包问题 问题描述 算法思路与代码实现 方法一:普通动归方法 方法二:空间优化法 代码1:方法一 从n个物品中的第1个物品开始考虑(从前往后考虑). 从n个物品中的第n个物品开始考虑(从后往 ...

  2. 一和零(二维01背包)

    给你一个二进制字符串数组 strs 和两个整数 m 和 n . 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 . 如果 x 的所有元素也是 y 的元素,集 ...

  3. 洛谷P1877-[HAOI2012]音量调节(二维01背包)

    题目描述: 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少 ...

  4. PACKING【二维01背包】

    PACKING 时间限制: 1 Sec 内存限制: 128 MB 提交: 278 解决: 24 [提交] [状态] [命题人:admin] 题目描述 It was bound to happen. M ...

  5. Triangular Pastures (二维01背包)

    描述 Like everyone, cows enjoy variety. Their current fancy is new shapes for pastures. The old rectan ...

  6. 宠物小精灵之收服(二维01背包)

    宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵. 小智也想收服其中的一些小精灵. 然而,野生的小精灵并不那么容易被收服. ...

  7. xynuoj1423 贪婪戈尔曼 二维 01背包

    1423: 贪婪戈尔曼 时间限制: 1 Sec  内存限制: 128 MB 提交: 12  解决: 4 您该题的状态:已完成 [提交][状态][讨论版][Edit] [TestData] 题目描述 从 ...

  8. 【python】一篇讲透背包问题(01背包 完全背包 多重背包 二维费用背包)

    面对背包问题,有一个很重要的方程式:状态转移方程式 所以每一种背包问题我都会给出状态转移方程式 #01背包 什么是01背包型问题? 先给大家感受一下01背包型问题: 给定n种物品和一背包.物品i的重量 ...

  9. HDU 2159 FATE【二维完全背包】

    题目链接:https://vjudge.net/problem/HDU-2159 FATE                                                       ...

最新文章

  1. android 让应用悬浮,快速回复+app下载
  2. 数据蒋堂 | JOIN运算剖析
  3. 从针对接口编程到依赖注入
  4. python读取dicom文件的包_python 读取DICOM头文件的实例
  5. 【华为云技术分享】Batch Normalization (BN) 介绍
  6. django初体验 学习笔记
  7. 百度网盘视频加速播放
  8. android单点触摸事件,Android多点触控详解
  9. 理解softmax函数
  10. Unity资源加载之Assetbundle(一)
  11. edge浏览器 查看MD文件
  12. iconfont多色图标的使用方法
  13. 域名国家工程研究中心(ZDNS)培训认证中心正式成立
  14. 穷人与富人的差距:越有钱的人负债越高
  15. Java with Mr.Seo 徐明浩 01
  16. [NOI2005] 月下柠檬树 (自适应辛普森积分)
  17. java 高精度数据类型_java基本数据类型
  18. 【论文阅读】InfoGAN: Interpretable Representation Learning by Information Maximizing GAN
  19. python统计西游记人物名字出现次数_Python文本统计功能之西游记用字统计操作
  20. oracle重新安装注意

热门文章

  1. IDEA控制台问题:At least one JAR was scanned for TLDs yet contained no TLD
  2. Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存
  3. python自动压图贴图到Excel小工具
  4. (转)Centos7 Nginx安装
  5. Mybatis DAO接口为什么不需要实现类
  6. HDUOJ--汉诺塔II
  7. SQL-92标准 中文翻译——定义、记号和约定 (记号)
  8. win7 搭建 caffe 以及 python 接口配置
  9. MySQL练习题和代码附录
  10. Python用类求圆的周长面积与球的表面积体积