51NOD1085 背包问题

01背包问题

#include<iostream>
#include<cstdio>
#define N 10005
using namespace std;
int n,w;
int dp[N],wi[N],pi[N];
int main()
{
	while(~scanf("%d%d", &n, &w))
	{
		for(int i = 0; i < n; i ++)
		{
			scanf("%d %d", &wi[i], &pi[i]);
		}
		for(int i = 0; i < n; i ++)
		{
			for(int j = w; j >= wi[i]; j --)
			{
				dp[j] = max(dp[j], dp[j - wi[i]] + pi[i]);
			}
		}
	    printf("%d\n", dp[w]);
	}
 } 

猜你喜欢

转载自blog.csdn.net/love20165104027/article/details/81587986