问题:给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 wi ,价值vi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;struct bag{int w;           //物品的重量int v;           //物品的价值double c;        //单位重量的价值,v/w
}a[1001];bool cmp(bag a, bag b){return a.c >= b.c;
}double knapsack(int n, bag a[], double c){double cleft=c;int i=0;double b=0;while(i<n && a[i].w<cleft){cleft -= a[i].w;
b += a[i].v;
i++;
}
//装满背包的剩余空间
if (i<n)
b += 1.0*a[i].v*cleft/a[i].w;
return b;
}
int main()
{int i;for(i=0;i<7;i++){cin>>a[i].w>>a[i].v;a[i].c=a[i].v/a[i].w;}sort(a,a+i,cmp);cout<<"最大价值为:"<<knapsack(7,a,20);return 0;
}

背包问题(最大装载价值)相关推荐

  1. 用贪心算法解背包问题(装载问题)

    题目描述 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等.已知第 i 种食品的最多拥有Wi 公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大. 题 ...

  2. 算法设计 - 01背包问题

    学习来源 [自制]01背包问题算法动画讲解_哔哩哔哩_bilibili 问题描述 有N件物品,第i件物品的重量是w[i],价值是p[i]. 有一个背包,背包的承重是W. 求解:将哪些物品装入背包可获得 ...

  3. 算法分析与设计(一)——0-1背包问题

    文章目录 1 三种背包问题详解 2 最值问题 1.1 0-1背包问题 1.2 零钱兑换 1.3 一和零 1.4 最后一块石头的重量 3. 恰好背包容量问题 4. 排列组合问题 4.1 目标和 4.2 ...

  4. 动态规划——背包问题(01背包问题)

    动态规划--背包问题(01背包问题) 01背包问题(求最大价值): 问题优化 01背包问题(求方案数): 动态规划--背包问题(01背包问题) 01背包问题(求最大价值): 有N件物品和一个最多能背重 ...

  5. 背包问题的多项式时间近似解

    背包问题的多项式时间近似解 一些概念 背包问题的伪多项式时间算法 强NP难问题和FPTAS 一些概念 ∏\prod∏ 是一个NP难问题的优化问题 f∏f_{\prod}f∏​ 是这个优化问题的目标函数 ...

  6. 前人对ACM学习的一些总结

    freopen("in.txt","r",stdin); 一:知识点  数据结构:  1,单,双链表及循环链表  2,树的表示与存储,二叉树(概念,遍历)二叉树 ...

  7. ACM-ICPC 知识点 经验

    一:知识点 数据结构:1,单,双链表及循环链表2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等)3,文件操作(从文本文件中读入数据并输出到文本文 件中)4, ...

  8. ACM/ICPC竞赛

    备战ACM资料 一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输 ...

  9. 牛人的ACM经验 (转)

     牛人的ACM经验 (转) 一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的           应用(二叉排序树,判定树,博弈树,解答树等) 3 ...

  10. 五大算法思想(三)回溯法及常见例子

    文章目录 一.理论基础 1.1 基本策略 1.2 使用步骤 1.3 经典例子 二.常见例子 2.1 八皇后问题 2.2 装载问题 2.3 批量作业调度问题 2.4 背包问题 一.理论基础   回溯法作 ...

最新文章

  1. 解决Jetty Maven Plugin:Please initialize the log4j system properly(转)
  2. Linux TCP队列相关参数的总结
  3. 四种利用C#播放声音的方法
  4. P2519-[HAOI2011]problem a【dp】
  5. 【系统架构】小型电商网站的架构(一)
  6. 苹果电脑更改sd卡只读_SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
  7. Nmap列举远程机器开放的端口
  8. mysql 上周时间_mysql 获取上周1到周日的时间
  9. Navicat 恢复mysql psc 备份文件
  10. 六键无冲和全键无冲哪个好_键盘冷知识:全键无冲到底是什么?
  11. unbuntu samba共享文件夹
  12. 教你用Python感受量子霸权
  13. MATLAB中dither抖动函数的用法
  14. 雷神simplest_ffmpeg_player解析(三)
  15. 修改jsp代码之后浏览器报500错误问题以及解决方法
  16. [h5棋牌项目]-05-重载配置导致的内存泄露
  17. PHP中strtotime函数的坑
  18. oracle中spool卸数,数据卸载--spool的使用
  19. 前端数组json遍历3种方式总结
  20. 大型软件是否占用计算机内存,软件应用占用内存怎么查看

热门文章

  1. 阿里云免费服务器ECS秒杀js脚本
  2. 润乾报表设计器——预览报表问题解决
  3. 怎么恢复格式化的sd卡呢?
  4. 把菜单栏变成万能工具箱,让你的 Mac 更酷炫
  5. OSPF网络可以没有BDR(实验)
  6. Java并发指南12:深度解读 java 线程池设计思想及源码实现
  7. 新生宝宝取名大全:带梓字寓意大气的男孩名字
  8. 【读书笔记-诗词歌赋】诗词积累(一)
  9. 密歇根大学新进展:AI+可穿戴设备,20秒检测儿童内化障碍
  10. jQuery学习笔记之closest()