SDUT OJ 2783 小P寻宝记


#include<iostream>
#include<memory.h>
#define N 10020
using namespace std;
int dp[N],pi[N],wi[N];
int max(int a,int b)
{
	return a>b?

a:b; } int main() { int n,v,i,j; while(cin>>n>>v) { memset(dp,0,sizeof(dp)); memset(pi,0,sizeof(pi)); memset(wi,0,sizeof(wi)); for(i=0;i<n;i++) cin>>pi[i]>>wi[i]; for(i=0;i<n;i++) for(j=v;j>=pi[i];j--) dp[j]=max(dp[j],dp[j-pi[i]]+wi[i]); cout<<dp[v]<<endl; } return 0; }



posted @ 2016-02-25 18:52  mengfanrong  阅读(133)  评论(0编辑  收藏  举报