http://poj.org/problem?id=3624
题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大。
思路:经典0-1背包。直接套用模板。
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 const int maxn = 13000; 6 7 int n, m; 8 int dp[maxn]; 9 10 int W[3405], D[3405]; 11 12 int main() 13 { 14 //freopen("D:\txt.txt", "r", stdin); 15 while (cin >> n >> m && n && m) 16 { 17 memset(dp, 0, sizeof(dp)); 18 for (int i = 1; i <= n; i++) 19 cin >> W[i] >> D[i]; 20 21 for (int i = 1; i <= n; i++) 22 { 23 for (int j = m; j >= W[i]; j--) 24 { 25 dp[j] = max(dp[j], dp[j - W[i]] + D[i]); 26 } 27 } 28 cout << dp[m] << endl; 29 } 30 return 0; 31 }