电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。

如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。

某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。

输入格式

第一行为正整数n(n≤1000),表示菜的数量。

第二行包括n个正整数,表示每种菜的价格。价格不超过50。

第三行包括一个正整数m(m≤1000),表示卡上的余额。

输出格式

对于每组输入,输出一行,包含一个整数,表示卡上可能的最小余额。

样例输入1


样例输出1

-

样例输入2


样例输出2


01背包+贪心

本题是对背包的巧妙应用,只有理解了背包才能轻松的做出这道题目。

排序后,把前n-1个物品计算01背包,计算出背包最大可以装多少价值的物品。

最后加上最大的物品的价值就可以了。

 #include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
#include <ctime>
const int INF=0x3f3f3f3f;
typedef long long LL;
const int mod=1e9+;
const LL MOD=1e9+;
const double PI = acos(-);
const double eps =1e-;
#define Bug cout<<"---------------------"<<endl
const int maxn=1e5+;
using namespace std; int a[];
int dp[]; int main()
{
#ifdef DEBUG
freopen("sample.txt","r",stdin);
#endif
// ios_base::sync_with_stdio(false);
// cin.tie(NULL); int n,m;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
dp[]=;
sort(a+,a++n);
int MAX=;
for(int i=;i<=n;i++)
{
for(int j=m-;j>=;j--)
{
if(dp[j])
{
dp[j+a[i]]=;
MAX=max(MAX,j+a[i]);
}
}
}
printf("%d\n",m-MAX); return ;
}

-

饭卡(DP)的更多相关文章

  1. HDOJ(HDU).2546 饭卡(DP 01背包)

    HDOJ(HDU).2546 饭卡(DP 01背包) 题意分析 首先要对钱数小于5的时候特别处理,直接输出0.若钱数大于5,所有菜按价格排序,背包容量为钱数-5,对除去价格最贵的所有菜做01背包.因为 ...

  2. HDU2546饭卡---(DP 经典背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=2546 饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory L ...

  3. [HDU2546]饭卡<dp 01背包>

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 #题目描述: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前, ...

  4. HDU 2546 饭卡 (dp)

    题目链接 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上 ...

  5. DP入门---饭卡

    HDU   2546 Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额 ...

  6. 饭卡 HDU - 2546(dp)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  7. dp饭卡

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  8. (01背包 排序+特判)饭卡(hdu 2546)

    http://acm.hdu.edu.cn/showproblem.php?pid=2546   Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额 ...

  9. hdu 2546 饭卡 删除一个数的01背包

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

随机推荐

  1. 微信小程序调用用百度地图天气功能

    #小程序之调用百度地图天气功能 本篇博客主要介绍小程序在百度地图中获取天气信息,如有不全请指出.下面先上效果图 主要内容 百度地图API的个人密钥,也就是AK 请求百度地图API接口数据 获取到的信息 ...

  2. 四十一、在SAP中添加多条件选择框

    一.代码如下: 二.其中我们的文本替换内容如下 三.需要注意的是波浪线的用法,以及区域的添加方法.运行程序,显示如下 四.不勾选时,查询出来是去掉国际的 五.勾选之后,查询的是全部的 六.显示如下 七 ...

  3. 049-PHP输出当前文件的名称

    <?php echo __FILE__; //利用常量__FILE__输出当前文件的名称 ?>

  4. 032-PHP中关于数组排序的usort()函数

    <?php function re($a, $b) { return ($a < $b) ? 1 : -1; } $x = array(1, 3, 2, 5, 9); usort($x, ...

  5. 146-PHP 使用<<<和HTML混编(二)

    <?php $html=<<<HTM1 <title>PHP输出HTML代码</title> <body> <a href=#> ...

  6. RPC——看这一篇就…显然不够

    引言 RPC blablabla…… RPC 知识点 扩展 有给老婆解释的如:https://www.jianshu.com/p/2accc2840a1b

  7. App_显示图表内容

    今天在之前记账本的基础上增加了图标的显示功能,在本次课程中它以折线图为例讲述.但是课程中给出了多有图的代码案例. https://github.com/lecho/hellocharts-androi ...

  8. html使用aes进行加密

    1.导入 aes.js 文件 !function(t,n){*t.length},toString:function(t){);o<r;o++){]>>>-o%*&;n ...

  9. SrpingMVC/SpringBoot中restful接口序列化json的时候使用Jackson将空字段,空字符串不传递给前端

    笔者的JSON如下: { "code": 10001, "message": "成功", "nextUrl": null ...

  10. PAT Advanced 1018 Public Bike Management (30) [Dijkstra算法 + DFS]

    题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...