求助!只对4个测试点
查看原帖
求助!只对4个测试点
1494013
imx2g楼主2025/7/25 20:49
#include<iostream>
#include <algorithm>
using namespace std;
//种数,钱,各个钱的具体种类,最简的凑齐n个钱的方法数,无穷大 
int N,  W,  w[10001],         jy[10001],               INF=1e9;
int dp(int n){
	if(n<0){
		return INF;
	}
	if(jy[n]!=INF){
		return jy[n];
	}
	if(n==0){
		return 0;
	}
	for(int i=1;i<=n;i++){
		jy[n]=min(jy[n],dp(n-w[i]));
	}
	jy[n]++;
	return jy[n];
}

int main(){
	cin>>N>>W;
	for(int i=1;i<=W;i++){
		jy[i]=INF;
	}
	for(int i=1;i<=N;i++){
		cin>>w[i];
	}
	cout<<dp(W)<<endl;
	return 0;
} 
2025/7/25 20:49
加载中...