hdu_2546_饭卡(01背包)
2016-07-09 22:41
351 查看
题目连接:hdu_2546_饭卡
题意:中文,不解释
题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想
#include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
inline void up(int &x,int y){if(x<y)x=y;}
int n,a[1001],dp[1200],m;
int main(){
while(~scanf("%d",&n),n){
F(i,1,n)scanf("%d",a+i);
scanf("%d",&m);
if(m<5)printf("%d\n",m);
else{
memset(dp,0,sizeof(dp));
sort(a+1,a+1+n);
F(i,1,n-1)for(int j=m-5;j>=a[i];j--)up(dp[j],dp[j-a[i]]+a[i]);
printf("%d\n",m-a
-dp[m-5]);
}
}
return 0;
}
题意:中文,不解释
题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想
#include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
inline void up(int &x,int y){if(x<y)x=y;}
int n,a[1001],dp[1200],m;
int main(){
while(~scanf("%d",&n),n){
F(i,1,n)scanf("%d",a+i);
scanf("%d",&m);
if(m<5)printf("%d\n",m);
else{
memset(dp,0,sizeof(dp));
sort(a+1,a+1+n);
F(i,1,n-1)for(int j=m-5;j>=a[i];j--)up(dp[j],dp[j-a[i]]+a[i]);
printf("%d\n",m-a
-dp[m-5]);
}
}
return 0;
}
相关文章推荐
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android dpi,dip,dp的概念以及屏幕适配
- Android px、dp、sp之间相互转换
- HP data protector软件学习1--基本角色与基本工作流程
- HP data protector软件学习2--软件组成与界面介绍
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- 【HDU 5366】The mook jong 详解
- 【HDU 2136】Largest prime factor 详细图解
- 【HDU 1568】Fibonacci 数学公式 详解
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- HDU 1568
- HDU1290
- POJ-1695-Magazine Delivery-dp
- nyoj-1216-整理图书-dp