hdu4508 完全揹包

http://acm.hdu.edu.cn/showproblem.php?pid=4508

 

這題是中文的很簡單。自己看吧

因爲每件物品可以無限取,所以是完全揹包問題


#include <stdio.h>   
#include <iostream> 
#include <algorithm>
#include <cstring>
using namespace std;  
int f[100005],w[105],v[105],n,i,m,j;

int max(int a,int b)
{
 if(a>b)return a;
 else return b;
}

int main()
{
 while(~scanf("%d",&n))
 {
  memset(f,0,sizeof(f));
  for(i=0;i
   scanf("%d%d",&v[i],&w[i]);
  cin>>m;
  for(i=0;i
  {
   for(j=w[i];j<=m;j++)
   {
    f[j]=max(f[j],f[j-w[i]]+v[i]);
   }
  }
  cout<<f[m]<<endl;
 }
 return 0;
}


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