hdu--2159--二维费用背包<一维错误解法>
2014-08-04 21:06
225 查看
这题 还好 我A了之后 习惯性地去看了下 discuss 然后发现 基本上所有人的解法都在说 二维费用完全背包。。。
还好 看到一个人 是和我一样的用 一维 完全背包 加一个计数的cnt数组去解决的。。。
还好 在那边看到了一个人的质疑 并给出了一组数据 果然 一维的不能通过=-=那就只能 去学下 二维费用背包了...擦 这名字好长啊
因为 当时 我背包九讲只学到了01 完全 多重 后面就没学了 。。。
二维费用背包要是一般的话 很简单的 就是多了一层for而已 而且假如这个数组是dp[ i ] [ u[i] ] [ v[i] ]那么u[i] , v[i]的遍历前后顺序对面最终结果是没有影响 只要你自己开的数组与这个前后遍历顺序相对应
touch me
我将 错误的代码 也放上来好了。。。 虽然A了。只能怪 测试数据太弱了 同时 附上 测试数据
View Code
还好 看到一个人 是和我一样的用 一维 完全背包 加一个计数的cnt数组去解决的。。。
还好 在那边看到了一个人的质疑 并给出了一组数据 果然 一维的不能通过=-=那就只能 去学下 二维费用背包了...擦 这名字好长啊
因为 当时 我背包九讲只学到了01 完全 多重 后面就没学了 。。。
二维费用背包要是一般的话 很简单的 就是多了一层for而已 而且假如这个数组是dp[ i ] [ u[i] ] [ v[i] ]那么u[i] , v[i]的遍历前后顺序对面最终结果是没有影响 只要你自己开的数组与这个前后遍历顺序相对应
touch me
我将 错误的代码 也放上来好了。。。 虽然A了。只能怪 测试数据太弱了 同时 附上 测试数据
// 二维 费用 背包 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int size = 110; int val[size]; int weight[size]; int dp[size][size];//一维 忍耐度 二维 杀怪数 int main() { int n , m , k , s , ans; bool flag; while( cin >> n >> m >> k >> s ) { flag = false; for( int i = 1 ; i<=k ; i++ ) { cin >> val[i] >> weight[i]; } memset( dp , 0 , sizeof(dp) ); for( int i = 1 ; i<=k ; i++ ) { for( int j = weight[i] ; j<=m ; j++ ) { for( int p = 1 ; p<=s ; p++ ) { dp[j][p] = max( dp[j][p] , dp[ j-weight[i] ][ p-1 ] + val[i] ); } } } if( dp[m][s] <n ) cout << -1 << endl; else { for( int i = 1 ; i<=m ; i++ ) { for( int j = 1 ; j<=s ; j++ ) { if( dp[i][j]>=n ) { ans = m-i; flag = true; break; } } if( flag ) break; } cout << ans << endl; } } return 0; }
View Code
相关文章推荐
- 二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】
- HDU 2159.FATE【二维费用背包(dp)】【4月25】
- hdu 2159 二维费用背包
- 【二维费用背包】HDU 2159
- hdu 2159 二维费用背包+模板
- hdu 2159 FATE 二维费用的完全背包
- HDU 2159 FATE(二维费用背包)
- HDU 2159 FATE(全然背包+二维费用背包)
- HDU-2159 FATE(二维费用背包问题)
- HDU 2159 FATE(二维费用背包)
- HDU 2159 二维费用背包问题
- hdu 2159 二维费用背包问题
- hdu 2159 二维费用背包
- HDU 2159 FATE (DP 二维费用背包)
- 【hdu 2159】 FATE 二维费用完全背包
- HDU 2159 FATE (二维费用完全背包)
- HDU 2159 FATE【二维费用背包】
- HDU 2159(FATE)二维费用背包
- HDU 2159 FATE(二维费用完全背包)
- HDU 2159 FATE 动态规划二维费用的背包问题