HDOJ 2546 饭卡 (01背包)
来源:互联网 发布:电影网源码php 编辑:程序博客网 时间:2024/04/30 20:51
http://acm.hdu.edu.cn/showproblem.php?pid=2546
题意:卡内有m元钱,有n种菜可以买(每种菜只可以买一次),只要卡内金额大于等于5元就可以买任何菜(刷到负也可以)。求最少可使卡上的余额为多少。
思路:最贵的一个菜一定是最后买,然后用01背包求(m-5)元钱可买的菜的最大金额,然后(m-最大金额-最贵的菜的价钱)即为所求。
#include<stdio.h>#include<string.h>#define maxn 1111int val[maxn],f[maxn];main(){int n,m,i,j,max,pos;while(scanf("%d",&n)&&n){for(i=1;i<=n;i++)scanf("%d",&val[i]);scanf("%d",&m);if(m<5){printf("%d\n",m);continue;}for(max=-1,pos=0,i=1;i<=n;i++)if(max<val[i]){max=val[i];pos=i;}memset(f,0,sizeof(f));for(i=1;i<=n;i++){if(pos==i)continue;for(j=m-5;j>=val[i];j--)if(f[j]<f[j-val[i]]+val[i])f[j]=f[j-val[i]]+val[i];}printf("%d\n",m-f[m-5]-max);}return 0;}
- HDOJ 2546 饭卡 (01背包)
- HDOJ 2546 饭卡 (01背包)
- hdoj 2546 饭卡 【01背包】
- HDOJ 2546 饭卡(01背包)
- hdoj 2546 饭卡 【01背包】
- hdoj 2546 饭卡《01背包》
- hdoj 2546 饭卡 【背包】
- HDOJ 饭卡 01背包
- HDOJ 题目2546饭卡(01背包)
- hdoj problem 2546 饭卡(01背包)
- HDOJ 2546 饭卡(01背包)
- HDOJ 2546 饭卡(01背包)
- HDOJ(HDU).2546 饭卡(DP 01背包)
- 饭卡(hdoj--2546--背包)
- HDOJ 2546 饭卡 【0 1 背包】
- 01背包问题 nyoj 289 hdoj 2546
- HDOJ Robberies 01背包
- hdoj 1864 01背包
- QList类
- 谈谈ARM中断嵌套
- HighCharts报表之条形统计图
- 【转】【Hibernate总结系列】....hbm.xml配置
- Shared Pool(共享池)
- HDOJ 2546 饭卡 (01背包)
- struts1.2的Validator验证框架使用
- 为 WebSphere Application Server 开发企业 OSGi 应用程序
- C#中泛型接口、泛型类、泛型方法的小列
- thinkphp调试
- 请求 菜单 功能 职责 常用脚本
- hdu1495
- android布局属性详解
- 关于delete内存