poj 1787 多重背包+路径记录

4种钱币,价值是1 5 10 25,给你他们的个数,问能不能用最多的钱币到达p,如果能输出每种的个数,不能输出不能。。

开个numb二维数组记录路径。

#include
#include
#include
using namespace std;
int numb[11000][4],dp[20000],ci[4],p,wi[4];
void complete(int cost,int it){
	for(int j=cost;j<=p;j++){
		if(dp[j]=cost;j--){
		if(dp[j]=p){
				complete(wi[i],i);
			}
			else{
				int ki=1,amount=ci[i];
				while(ki



你可能感兴趣的:(acm算法)