#include<bits/stdc++.h>
using namespace std;
int dp[505][2005],n,L,c[505],l[505],ans;
void dfs(int pos,int x,int m){
if(x>=L){
ans=min(ans,m);
return;
}
if(pos>n) return;
dfs(pos+1,x+l[pos],m+c[pos]);
dfs(pos+1,x,m);
return;
}
int main(){
scanf("%d%d",&n,&L);
for(int i=1;i<=n;i++) scanf("%d%d",&c[i],&l[i]);
for(int i=1;i<=n;i++) ans+=l[i];
if(ans<L){
printf("no solution");
return 0;
}
ans=1e9;
dfs(1,0,0);
printf("%d",ans);
return 0;
}
知道要加记忆化,但是总是有不对的地方,本蒟蒻新学动态规划,不大会转移方程和记忆化,求条