#include<bits/stdc++.h>
using namespace std;
int dp[100001],n,a[101010],cost,w;
int main(){
cin>>n>>w;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1;i <= w;i++){
cost = 0x3f3f3f3f;
for(int j = 1; j <= n; j++){
//特判一下,防止RE
if(i - a[j] >= 0) cost = min(cost, dp[i - a[j]]);
//求之前用的纸币数最小值
}
dp[i] = cost + 1;//加一是这次会多用1张纸币
}
cout << dp[w];
return 0;
}
0 回复
0 转发
0 喜欢
3 阅读



