hdu 2159 fate(二维完全背包)
2013-05-02 23:49
429 查看
题意是中文,不解释了,注意这个是完全背包就行了,还有就是注意初始化,还有就是用需要降维的,顺序是正序循环,和完全的01背包类似,但是我不知道怎么用三维的去做,有谁能够帮我一下呢?
#include <iostream> #include <cstring> #include <cstdio> #include <string> #include <algorithm> using namespace std; const int MAX = 105; #define max(a,b) a > b ? a : b int c[MAX],v[MAX],n,m,k,s; int dp[MAX][MAX]; int main() { int i,j,f; while(cin >> n >> m >> k >> s) { memset(dp,0,sizeof(dp)); for( i = 1 ;i <= k ;i ++) cin >> v[i] >> c[i] ; for(i = 1 ;i <= k ;i++) // k 个物品 { for(int j = 1; j <= s ;j ++) // 一共杀 s个人 { for(int f = c[i] ; f <= m ; f ++) // 一个留有 m 的忍耐度 { dp[j][f] = max(dp[j][f],dp[j - 1][ f - c[i]] + v[i]); } } } for( i = 1 ; i <= m; i++) // 寻找到符合经验值但是花费忍耐度最小的忍耐度 if(dp[s][i] >= n) break; if(i > m) cout << -1 << endl; else cout << m - i << endl; } return 0; }
相关文章推荐
- HDU 2159 FATE(二维完全背包)
- hdu 2159 Fate (二维完全背包)
- HDU 2159 FATE (二维完全背包)
- hdu 2159 FATE(二维完全背包)
- HDU 2159 FATE(二维完全背包)
- HDU 2159 FATE (二维完全背包)
- hdu-2159-FATE(二维费用完全背包)
- HDU 2159---FATE【二维完全背包】
- hdu 2159 FATE( 二维完全背包)
- HDU 2159 FATE【二维完全背包】
- 二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】
- HDU 2159 FATE【二维完全背包】
- HDU 2159 FATE(完全背包:二维限制条件)
- HDU 2159 FATE(二维完全背包)
- HDU 2159 FATE(二维费用完全背包)
- HDU 2159 Fate(二维完全背包)
- HDU 2159 FATE 二维完全背包 dp
- HDU 2159 FATE (二维完全背包)
- 【hdu 2159】 FATE 二维费用完全背包
- hdu 2159 fate 二维完全背包