是不是我的思路就是错的www
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1005],b[1005],f[50005];
int main()
{
scanf("%d%d",&n,&m);
memset(f,63,sizeof(f));
f[0]=0;
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i],&b[i]),f[a[i]]=b[i];
for(int i=1;i<=n;i++)
for(int j=a[i];j<=m+5000;j++)
{
f[j]=min(f[j],f[j-a[i]]+b[i]);
}
printf("%d",min(f[m],f[m+5000]));
return 0;
}
自己乱写的……换正常方法过了一次,但是不理解为什么这个代码不对劲……
如果本身思路有问题的话,希望各位巨佬提出来让我死心qwq