博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
饭卡 hdu2546
阅读量:4155 次
发布时间:2019-05-26

本文共 844 字,大约阅读时间需要 2 分钟。

饭卡 hdu2546

标签:01背包


/*    题意:只要剩余的钱不低于5元,就可以购买任何一种菜,          所以在使用01背包之前,我们首先要在现在所拥有的余额中保留5元,最后用这5元去购买最贵的物品,          而剩下的钱可以随意使用,也就是背包的总容量。*/#include 
#include
#include
using namespace std;const int maxn = 1005;int dish[maxn], dp[maxn];int main(){ int n, m; while(scanf("%d", &n) && n) { for(int i = 0; i < n; i++) scanf("%d", &dish[i]); scanf("%d", &m); if(m < 5) {
printf("%d\n", m); continue;} m -= 5; sort(dish, dish + n); memset(dp, 0, sizeof(dp)); //ZeroOnePack template for(int i = 0; i < n - 1; i++) //把最贵的菜保留 for(int j = m; j >= dish[i]; j--) dp[j] = max(dp[j], dp[j - dish[i]] + dish[i]); //"value", "volume"都是菜的价格 printf("%d\n", m + 5 - dish[n - 1] - dp[m]); //m + 5 - dish[n - 1](买最贵的菜) } return 0;}

转载地址:http://rnkxi.baihongyu.com/

你可能感兴趣的文章
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>
从手Q与微信之争,看腾讯内在的真实矛盾与战略
查看>>
移动互联网的七宗败案
查看>>
互联网十大失败案
查看>>
小米颓势已现,生死劫命悬手机
查看>>
三大隐忧 三星未来路在何方?
查看>>
linux下各种进制转化最简单的的命令行
查看>>
结构体和联合体
查看>>
ACM(Association for Computing Machinery )组织的详细介绍
查看>>
unix高级编程之-命令行参数(实践一)
查看>>
无线网络加密方式对比 .
查看>>
linux中cat命令使用详解
查看>>
Static 作用详述
查看>>
透析ICMP协议(三): 牛刀初试之一 应用篇ping(ICMP.dll)
查看>>
透析ICMP协议(四): 牛刀初试之二 应用篇ping(RAW Socket)
查看>>
再次写给我们这些浮躁的程序员
查看>>
Linux下重要日志文件及查看方式(1)
查看>>
Linux下重要日志文件及查看方式(2)
查看>>