UVA - 674 Coin Change (完全背包)

题意

有5种硬币,分别价值1,5,10,25,50;
问取的硬币总价值为n有几种取法;

思路

常规的完全背包问题

代码

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
int cost[5]= {1,5,10,25,50};
int dp[100000];
int main()
{
	//预处理出所有结果
    memset(dp,0,sizeof dp);
    dp[0]=1;
    for(int i=0; i<5; i++)
        for(int j=0; j<=7489-cost[i]; j++)
            dp[j+cost[i]]+=dp[j];
	
    int n;
    while(~scanf("%d",&n))
        printf("%d\n",dp[n]);
        
    return 0;
}

发布了25 篇原创文章 · 获赞 22 · 访问量 3580

猜你喜欢

转载自blog.csdn.net/qq_44086097/article/details/104239009
今日推荐