是不是题的问题
查看原帖
是不是题的问题
1469663
San_yu楼主2025/1/15 20:02

这道题用毛病吧,输入4 75 \n 24 17 46 2,答案是No anwser,但不是有46+2+2+2+2+17+2+2这种情况吗

//P2001硬币面值
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
int cash[N], way[N], vis[N];
long long n, m;
int dep(int now) {
	
	if (now == 0) return 0;
	if (vis[now]) return way[now];
	int res = 100000000000;
	for (int i = n; i >= 1; i--)
	{
		if (now >= cash[i] && now >=0 ) {
			res = min(res,dep(now - cash[i]));
		}
	}
	vis[now] = 1;
	way[now] = res + 1;
	//cout << way[now] << endl;
	return way[now];
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++) cin >> cash[i];
	sort(cash + 1, cash + 1 + n);
	dep(m);
	cout << way[m];
	return 0;
}
2025/1/15 20:02
加载中...