大家帮忙看一下
查看原帖
大家帮忙看一下
791222
lby_commandBlock楼主2024/9/6 15:40
#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) {
//				printf("正在计算{%d,%d}。\n", i, a[j]);
				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

搞不懂为啥会错,麻烦大家看下,谢谢!

2024/9/6 15:40
加载中...