hdu4508 完全背包

来源:互联网 发布:毕业生就业数据 编辑:程序博客网 时间:2024/06/06 02:16

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;}