完全背包中所有物品的个数可无限取
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[50001],b[50001];
int f[50001]={0};
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++)
{
for(int j=a[i];j<=m;j++)
{
if(f[j-a[i]]+b[i]>f[j])
f[j]=f[j-a[i]]+b[i];
for(int k=0;k<=m;k++)
cout<<f[k]<<" ";
cout<<endl;
}
cout<<endl;
}
//cout<<f[m]<<endl;//最优解
return 0;
}