比1114更简单的完全背包 题中说n种食物默认每种不限数量
#include<stdio.h>
int f[100001],n,m,i,j,a[100],b[100];
int main(){
while(~scanf("%d",&n)){
for(i=0;i<n;++i)scanf("%d%d",a+i,b+i);
scanf("%d",&m);
for(j=0;j<=m;++j)f[j]=0;
for(i=0;i<n;++i)
for(j=b[i];j<=m;++j)
if(f[j]<f[j-b[i]]+a[i])
f[j]=f[j-b[i]]+a[i];
printf("%d\n",f[m]);
}
}