hdu2546(01背包变形)
来源:互联网 发布:windows驱动开发 编辑:程序博客网 时间:2024/05/10 22:33
01背包变形
根据情况变形,由题意知,首先拿出5元买最贵的东西,那接下来就是背包容量m-5,物品数量n-1 的01背包问题了
状态方程
dp[j]=max(dp[j],dp[j-vo[i]+vo[i])
#include<iostream>#include <cstring>#include <algorithm>using namespace std;int vo[1005];int dp[1005];int main(){ int n,v; while(cin>>n&&n) { for(int i=1;i<=n;i++) cin>>vo[i]; cin>>v; memset(dp,0,sizeof(dp)); sort(vo+1,vo+n+1);//wa==>(vo,vo+n) int maxn=vo[n]; if(v<5) cout<<v<<endl; else{ v=v-5; for(int i=1;i<n;i++) { for(int j=v;j>=vo[i];j--) { if(dp[j]<dp[j-vo[i]]+vo[i])//或者用dp[j]=max(dp[j],dp[j-vo[i]+vo[i]) dp[j]=dp[j-vo[i]]+vo[i]; } } cout<<v+5-dp[v]-maxn<<endl; } } return 0;}
0 0
- hdu2546(01背包变形)
- HDU2546 (01背包)
- HDU2546(01背包)
- hdu2546 饭卡(01背包)
- hdu2546饭卡(01背包)
- hdu2546 饭卡 (01背包)
- hdu2546饭卡(01背包)
- HDU2546 饭卡(01背包)
- HDU2546--饭卡(01背包)
- HDU2546 饭卡(01背包)
- HDU2546~饭卡(01背包)
- hdu2546 饭卡 (dp 01背包)
- hdu2546饭卡(动规 01背包)
- hdu2546 — 饭卡 (01背包)
- hdu2546 饭卡(01背包水)
- hdu2546 饭卡(01背包 dp)
- hdu2546饭卡(经典01背包题目)
- HDU2546 01背包
- bzoj 1027 [JSOI2007]合金 计算几何+floyd
- 微信支付 JAVA实现
- C++启动一个进程
- Java 集合排序、汉字按字母表排序问题
- 大端 小端
- hdu2546(01背包变形)
- _stricmp与stricmp的关系
- UID、User ID &PID
- Learnning Dlib(三) Dlib load ios image and save image
- poj 1308 并查集
- python第三方库PIL.Image安装
- 【LeetCode-88】Merge Sorted Array(C++)
- php array_slice笔记
- Sonar中的技术债务简要了解