hihocoder1038(01背包)

题目连接:点击打开链接

解题思路:

典型的01背包,,非常省空间的一种写法。

完整代码:

#include <iostream>#include <cstdio>#include <cstring>#include <climits>using namespace std;const int maxn = 111001;int n , m;int need[maxn] , val[maxn] , dp[maxn];int main(){#ifdef DoubleQfreopen("in.txt" , "r" , stdin);#endifwhile(cin >> n >> m){memset(dp , 0 , sizeof(dp));for(int i = 1 ; i <= n ; i ++)cin >> need[i] >> val[i];for(int i = 1 ; i <= n ; i ++){for(int j = m ; j >= need[i] ; j –){dp[j] = max(dp[j] , dp[j-need[i]] + val[i]);}}cout << dp[m] << endl;}}

也有伤心的,既有令人兴奋的,也有令人灰心的,

hihocoder1038(01背包)

相关文章:

你感兴趣的文章:

标签云: