http://poj.org/problem?id=3624
题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大。
思路:经典0-1背包。直接套用模板。
#include<iostream>
#include<algorithm>
using namespace std; const int maxn = ; int n, m;
int dp[maxn]; int W[], D[]; int main()
{
//freopen("D:\\txt.txt", "r", stdin);
while (cin >> n >> m && n && m)
{
memset(dp, , sizeof(dp));
for (int i = ; i <= n; i++)
cin >> W[i] >> D[i]; for (int i = ; i <= n; i++)
{
for (int j = m; j >= W[i]; j--)
{
dp[j] = max(dp[j], dp[j - W[i]] + D[i]);
}
}
cout << dp[m] << endl;
}
return ;
}