知识点:01背包问题

饭卡

电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。
某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。
Input
多组数据。对于每组数据:
第一行为正整数n,表示菜的数量。n<=1000。
第二行包括n个正整数,表示每种菜的价格。价格不超过50。
第三行包括一个正整数m,表示卡上的余额。m<=1000。
n=0表示数据结束。
Output
对于每组输入,输出一行,包含一个整数,表示卡上可能的最小余额。
Sample Input
1
50
5
10
1 2 3 2 1 1 2 3 2 1
50
0

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int c[1001],dp[1001];
int main()
{int n,m;while(scanf("%d",&n)!=EOF&&n!=0) //可以使用while(~scanf("%d",&n)),但是别忘了n==0时 {memset(dp,0,sizeof(dp));for(int i=0;i<n;i++)scanf("%d",&c[i]);scanf("%d",&m);if(m<5){printf("%d\n",m); //可以用cout<<m<<endl;continue;}sort(c,c+n);for(int i=0;i<n-1;i++)for(int v=m-5;v>=c[i];v--)dp[v]=max(dp[v],dp[v-c[i]]+c[i]);printf("%d\n",m-dp[m-5]-c[n-1]); }
}

先把m中的五元减掉,这样转换为背包问题,用那个五元去买最贵的

背包问题——01背包问题——饭卡相关推荐

  1. 完全背包问题+01背包问题+分组背包+多重背包 总结

    背包问题都涉及到动态规划,利用dp进行更加优化的计算. 一.01背包 最基本的是01背包问题,题目一般类似:"在一定数目物品内,挑选总重量不超过一定数目的物品,其中每个物品只能选一次,求背包 ...

  2. 背包问题-01背包问题

    n个物品,总体积是V,每个物品的体积的vi,每个物品的最大价值是wi,在不超过V的体积下求最大价值 eg 背包容积为 5 物品数量为 4 物品的体积分别为 {0, 1, 2, 3, 4} 物品的价值分 ...

  3. 背包问题——01背包问题——Charm Bracelet

    Charm Bracelet Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, sh ...

  4. 基础算法--背包问题(01背包问题、完全背包问题、多重背包问题、分组背包问题)

    文章目录 前言 01背包问题 完全背包问题 多重背包问题 分组背包问题 前言 背包问题:给我们 i 件物品,每件物品都有体积 vi 和权重 wi ,给我们限制条件,让我们选择在背包的容量内,物品达到权 ...

  5. 0-1背包问题和背包问题

    (1)0-1背包问题 0-1背包问题可做如下描述: 给定n种物品和一个背包,每个物品有一个[wi,vi]对,表示其重量和价值.背包的总容量为C.对于每个物品,要么装要么不装(0或1),现在需要设计方案 ...

  6. 动态规划之 0-1 背包问题

    动态规划问题一直以来都是利用空间换取时间. 动态规划问题一直以来最经典的就是 0 1背包问题 ,再有点难度就是 完全背包问题 以及多重背包问题 0-1背包问题 题目描述:有一个容量为 V 的背包,和一 ...

  7. 动态规划(一):0-1背包问题

    目录 前言 一.原理 1.1 最优子结构性质 1.2 递归关系 二.算法描述 2.1 算法描述 2.2 图解 2.3 构造最优解 三.0−10-10−1 背包问题相关题目 3.1 题目 3.2 源程序 ...

  8. c语言 用回溯算法解决01背包问题,回溯法解决01背包问题

    <回溯法解决01背包问题>由会员分享,可在线阅读,更多相关<回溯法解决01背包问题(21页珍藏版)>请在人人文库网上搜索. 1.回溯法解决01背包问题,回溯法解决01背包问题, ...

  9. 动态规划 01 背包问题

    01 背包问题 01 背包问题是很典型的 动态规划问题   问题描述 :  现在有N件商品, 他们的重量和价值分别为 Wi 和Vi  但是你的包最大承受重量是E 现在要那你求出  方案中价值最大是多少 ...

最新文章

  1. UWP开发入门(十九)——10分钟学会在VS2015中使用Git
  2. 成功解决sklearn\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 i
  3. C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!
  4. Jython 2.2 发布
  5. python变量以及类型(含笔记)
  6. mysql 全库查询关键字_数据库查询语句关键字总结
  7. hackmyvm之warez
  8. 随机数和随机数种子——学不会找我
  9. 基于电能计量芯片HLW8012计量插座方
  10. C语言版数据结构计算顺序表中X的个数,设计算法。数据结构课后习题,定义顺序表,查找顺序表中X元素的个数。
  11. 围棋单机版-纵横十九道,迷煞多少人
  12. qlabel显示两行_PyQt5 系统化学习: QLabel
  13. Apple 宣布 2021 年 Apple Design Awards 获奖者
  14. windows 7 旗舰版下,安装vs2010旗舰版终于成功!
  15. 关于Dlink和ADSL不和谐的解决
  16. 好用的在线思维导图软件--GitMind
  17. 到底什么是信息检索?
  18. ROS仿真笔记之——gazebo配置velodyne
  19. UDP Flood攻击
  20. Google Chrome常规浏览器设置: Adobe Flash Player

热门文章

  1. 正则不等于一个字符串_王晓阳 | 物理主义不等于物理学主义——表述物理主义的一个新方案...
  2. 安卓手机管理_安卓手机:管理工具
  3. 经验之谈:内存问题造成数据库性能异常怎么破?
  4. 开发人员不得不知的MySQL索引和查询优化
  5. 特别推荐:系统性能提升优先法宝 | 缓存应用实践
  6. 风起云涌:传Oracle技术的二号人物 Thomas Kurian 正在离开
  7. MySQL 8.0.12 有什么新内容?
  8. Python图像处理丨OpenCV+Numpy库读取与修改像素
  9. 斗罗大陆真3D手游实力上线,带你感受魂兽猎杀的超燃时刻
  10. 跟我学AI建模:分子动力学仿真模拟之DeepMD-kit框架