51Nod 1085 揹包問題

//簡單的01揹包,在此推薦一個博客這個博客http://www.cnblogs.com/sdjl/articles/1274312.html寫的挺好的,容易理解
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define MAX 1000 
int f[MAX];
int main() 
{
    int N,W,w[105],p[105]; 
    memset(f,0,sizeof(f));
    cin>>N>>W;
    for(int i=1;i<=N;i++)
    {
    	cin>>w[i]>>p[i];
    	for(int j=W;j>=w[i];j--)
    	{
    		if(f[j]<=f[j-w[i]]+p[i])
    		   f[j]=f[j-w[i]]+p[i];
		}
   	}
   	cout<<f[W]<<endl;
	return 0;
}



















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章