#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int n, m, a[105], dp[10005];
signed main() {
freopen("debug.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= m; i++) {
dp[i] = INT_MAX;
for (int j = 1; j <= n; j++)
if (a[j] <= i) {
dp[i] = min(dp[i], dp[i - a[j]] + 1);
}
}
cout << dp[m] << endl;
return 0;
}
这份代码在测试这个数据时出错了:
9 18123
1 4720 9070 14200 16980 4970 1730 3750 10110
搞不懂为啥会错,麻烦大家看下,谢谢!