HDU 2159 FATE 【二维费用的完全背包问题】
2013-08-03 09:54
274 查看
思路:
要注意:最后结果输出时要查找当经验值等于或者大于n时的最小忍耐值m,方可满足最大的保留忍耐值
AC代码:
要注意:最后结果输出时要查找当经验值等于或者大于n时的最小忍耐值m,方可满足最大的保留忍耐值
AC代码:
#include<stdio.h> #include<string.h> int dp[100][100],a[100],b[100]; int M,S; void CompletePack(int c,int w) { int m,s; for(m=c;m<=M;m++) for(s=1;s<=S;s++) if(dp[m][s]<dp[m-c][s-1]+w) dp[m][s]=dp[m-c][s-1]+w; } int main() { int n,k; int i; int max; int m,s; int t; while(scanf("%d%d%d%d",&n,&M,&k,&S)!=-1) { for(i=1;i<=k;i++) scanf("%d%d",&a[i],&b[i]); memset(dp,0,sizeof(dp)); for(i=1;i<=k;i++) CompletePack(b[i],a[i]); if(dp[M][S]<n)printf("-1\n"); else { for(m=0;m<=M;m++) { t=0; for(s=0;s<=S;s++) if(dp[m][s]>=n) { t=1; max=m; break; } if(t)break; } printf("%d\n",M-max); } } return 0; }
相关文章推荐
- HDU2159_FATE【二维费用背包】【完全背包】
- HDU2159 FATE 二维费用背包-完全背包
- hdu 2159 FATE(二维背包+完全背包)
- 动态规划:HDU2159-FATE(二维费用的背包问题)
- HDU 2159 FATE 【二维费用完全背包】
- 二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】
- hdu2159 FATE(二维费用背包+完全背包)
- HDU-2159 FATE(二维费用背包问题)
- 第五讲 二维费用的背包问题 HD FATE(二维完全背包)
- HDU 2159 FATE (动态规划dp之二维完全背包问题)
- HDU 2159 FATE 动态规划二维费用的背包问题
- HDU 2159 FATE (二维费用完全背包)
- 杭电 2159 FATE(二维费用背包问题)
- HDU 2159 FATE(完全背包+二维费用背包)
- hdu 2159 FATE 二维费用的完全背包
- HDU 2159 FATE(二维费用完全背包)
- 【hdu 2159】 FATE 二维费用完全背包
- hdu-2159-FATE(二维费用完全背包)
- hdu 2159 FATE (二维费用背包问题)
- HDU 2159 FATE(二维费用完全背包)