代码:
#include<bits/stdc++.h>
using namespace std;
int w[105];
int c[105];
int dp[50005];
int main(){
int n,h;
cin>>n>>h;
for(int i=1;i<=n;i++)
cin>>c[i]>>w[i];
for(int i=1;i<=n;i++)
for(int j=w[i];j<=h;j++)
dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
for(int i=1;i<=h;i++){
if(dp[i]>=h){
cout<<i;
return 0;
}
}
return 0;
}
完全背包,类精卫填海
做法,感谢大佬们的帮助