博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2546 饭卡 动态规划01背包
阅读量:5329 次
发布时间:2019-06-14

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

题意:

  给你一些饭菜的价格,和你饭卡的余额,余额大于等于5元时可以刷任何价格的菜,算出你买了这些菜之后饭卡中最少的一组解(余额可以为负)。

 

坑爹:

  这道题中,他的价格也就是背包中的容量,也是背包中的价值,总余额如果超出5元要将总余额减去5元的钱尽量用掉。

 

解法

  用到了一点贪心的思想,用一个sort排序,将便宜的菜买了,尽量将饭卡里的余额靠近5元,然后在买一个最贵的菜,这样就会让饭卡里的余额最少了。

 

 

View Code
1 #include
2 #include
3 using namespace std; 4 5 const int maxn =1000 + 10; 6 int f[maxn]; 7 int more; 8 9 int max(int a,int b)10 {11 return a>b?a:b;12 }13 14 15 void ZeroOnePack(int cost,int weight)16 {17 int j;18 for(j=more;j>=cost;j--)19 {20 f[j]=max(f[j],f[j-cost]+weight);21 }22 }23 24 int main()25 {26 int n;27 while(cin>>n,n)28 {29 int i;30 int num[maxn];31 int money;32 int exp;33 int sum=0;34 memset(f,0,sizeof(f));35 for(i=0; i
>num[i];38 sum+=num[i];39 }40 sort(num,num+n);41 exp=num[n-1];42 cin>>money;43 if(money<5)44 {45 cout<
<

 

转载于:https://www.cnblogs.com/pcpcpc/archive/2012/09/05/2672502.html

你可能感兴趣的文章
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
Linux设置环境变量的方法
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>