hdu 2546 01背包模板题
2013-05-09 19:26
162 查看
直接套用摸板就可以做出
#include<stdio.h> #include<string.h> int ma(int a,int b) {return a>b?a:b; } int main() {int i,j,m,n,a[1001],dp[1001],max,k; while(~scanf("%d",&m)) {memset(dp,0,sizeof(dp)); if(m==0) break;max=k=0; for(i=0;i<m;i++) {scanf("%d",&a[i]); if(max<a[i]) {max=a[i]; k=i; } } scanf("%d",&n); if(n<5) printf("%d\n",n); else {for(i=0;i<m;i++) //从这里开始是背包代码 {for(j=n-5;j>=0;j--) //"j--"是01背包的核心,因为每件物品只能用一次,所以要倒着来 if(i!=k&&j>=a[i]) dp[j]=ma(dp[j],dp[j-a[i]]+a[i]); //背包到这里结束 } printf("%d\n",n-dp[n-5]-max); } } }
相关文章推荐
- HDU-2546 饭卡 【01背包模板题】
- HDU 2546 饭卡(01背包)
- hdu 2546 饭卡(01背包)
- HDU 2546 饭卡 (01背包)
- Hdu 2546 饭卡(01背包)
- hdu 2546 +hdu 3466 (01背包问题)
- [HDU] 2546 - 饭卡 - 01背包 + 贪心
- HDU 2602 Bone Collector……( 01背包模板题)
- HDU 2546 饭卡 (基础01背包)
- HDU 2546 01背包问题
- hdu 2546 饭卡 (01背包)
- HDU 2546 饭卡 (01背包问题)
- HDU 2546 饭卡(01背包问题)
- hdu 2546 (01背包)
- HDU 2546 饭卡……(01背包+条件)
- HDU 2546(01背包)
- hdu 2546 饭卡 01背包
- HDU-2546(01背包)
- hdu 2546 饭卡(01背包+贪心)
- HDU 2546 饭卡(01背包) 解题报告