P2918 Buying Hay S(完全背包基础)
求 \([T,T+5000]\) 区间内最小花费即可。
#include<bits/stdc++.h>
using namespace std;
const int N=55005;
int f[N],n,V,ans=INT_MAX;
int main(){
scanf("%d%d",&n,&V);
for(int i=1;i<=V+5000;i++) f[i]=1e9;
for(int i=1,w,v;i<=n;i++){
scanf("%d%d",&w,&v);
for(int j=w;j<=V+5000;j++) f[j]=min(f[j],f[j-w]+v);
}
for(int i=V;i<=V+5000;i++) ans=min(ans,f[i]);
printf("%d\n",ans);
return 0;
}

浙公网安备 33010602011771号