`

UVA Let Me Count The Ways(357)

 
阅读更多

题目大意:

       US 的硬币工分为以下五种:penny: 1c, nickel: 5c, dime: 10c, quarter: 25c, half-dollar: 50c,若Mel去商店里买东西,店家找他 N cents,问使用上面5种penny,共有几种找法?即有几种方法能够凑出N cents?

其中0 <= N <= 30000;

 

解题思路:

       完全背包问题,解决方法就是将N从 1 到 30000 中,每个N有几种凑成方法都算一遍。

      状态转移方程: dp[j] += dp[ j - coin[i] ];    即如果j - coin[i] 能够由coin[i]凑成的话,那么 j 也能由coin[i]凑成,凑成的方法总数就为当前的总量加上 j - coin[i] 的总量。注意,dp的类型要为long long 类型,int的类型不够,会溢出的。(我刚开始没注意,一直错。。。囧!)

 

代码:

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

long long dp[30010]={0};  
int coin[5] = {1,5,10,25,50};

int main()
{
	long long sum;
	dp[0] = 1;
	for( int i = 0; i < 5; i++ )
	{
		for( int j = coin[i]; j <= 30000; j++ )
		{
			if( dp[ j - coin[i] ] )
				dp[j] += dp[ j - coin[i] ];
		}
	}

	freopen( "test.txt", "r", stdin );
	freopen( "test.out", "w", stdout );
	while( cin>>sum )
	{
		if( dp[sum] == 1 )
		{
			cout<<"There is only 1 way to produce "<<sum<<" cents change."<<endl;
			continue;
		}		
		cout<<"There are "<<dp[sum]<<" ways to produce "<<sum<<" cents change."<<endl; 
	}

	return 0;
}

 

分享到:
评论

相关推荐

    UVA10474 Where is the Marble?

    ### UVA10474 Where is the Marble? #### 问题背景 Raju 和 Meena 喜欢玩一种与数字标记的弹珠游戏。在这个游戏中,Raju 首先按照数字升序排列弹珠,然后 Meena 会询问特定数字的弹珠首次出现的位置。如果 Raju 能...

    算法竞赛-如何使用栈-uva357

    uva357的栈实现版本

    uva272 uva272 uva272

    标题中的"uva272 uva272 uva272"和描述中的"uva272"指的是UVA(University of Virginia)在线判题系统的第272题,这通常与编程竞赛和算法挑战有关。该题目的标签为"算法",意味着我们需要解决一个与计算机算法设计和...

    Uva 100(The 3n+1 problem) c 代码

    Uva 100 ,问题是The 3n+1 probelm ,可以ac的代码

    uvaoj 习题题目

    【uvaoj 习题题目】相关知识点详解 在编程学习和竞赛中,UVa Online Judge(简称UVa或OJ)是一个广受欢迎的在线评测系统,它为程序员提供了大量练习题目,涵盖算法、数据结构、数学等多个领域。通过解决这些题目,...

    UVA_示例代码

    【UVA在线判题系统与示例代码详解】 UVA(University of Victoria Algorithm Competition)是全球知名的在线算法竞赛平台,它提供了丰富的编程题目供程序员挑战,以提高算法设计和编程能力。UVA Online Judge(简称...

    UVA题目大全

    【UVA题目大全】是面向ACM(国际大学生程序设计竞赛)参赛者和算法爱好者的一份宝贵资源。UVA(University of Victoria Algorithm)在线判题系统是世界上最早的在线编程竞赛平台之一,它提供了大量的编程题目供用户...

    uva最全ac代码

    【标题】"uva最全ac代码" 涉及的是在编程竞赛领域中的一个集锦,特别是针对UVA(University of Victoria Algorithm)在线判题系统的解决方案。UVA是全球最早的在线算法竞赛平台之一,吸引了众多程序员参与并提交代码...

    uva 200~299 22道题解 均accept

    这些文件是针对UVA(University of Virginia)在线判题系统的编程题目的解决方案,主要涵盖了编号为200至299的题目。UVA在线判题平台是一个著名的编程竞赛和练习平台,它提供了各种难度级别的算法和编程问题,旨在...

    uva 102 357 484 702709 714 825 10128解法与代码

    2. **UVA 357** - 从文件名`uva357_code`推断,这个题目可能涉及到更复杂的算法,可能包括排序、搜索或数据结构的使用。可能是要求对一组数据进行排序或查找特定元素。 3. **UVA 484** - 这个问题可能涉及到字符串...

    uva 50个题解

    UVA(University of Virginia)在线判题系统是一个广受欢迎的平台,汇集了众多经典算法题目。"uva 50个题解"这个资源显然是针对这个平台的题目的解答集合,特别适合对算法学习和实践感兴趣的人群。下面,我们将深入...

    Uva练习题

    【UVA练习题】是针对在线编程竞赛平台UVA(University of Virginia)的一系列练习题目。UVA是一个广受欢迎的编程竞赛网站,它为程序员提供了一个展示编程技能和解决问题的平台。这里的“不是很难,试试吧”可能意味...

    uva.rar_UVA_posAgent_uva 2d_uva_trilearn

    "uva.rar_UVA_posAgent_uva 2d_uva_trilearn"这个标题可能是指一个与UVA平台相关的项目或资源包,其中包含了几个特定的组件。 "posAgent"可能指的是一个定位或位置代理,这在计算机科学中通常与移动机器人、游戏或...

    UVaOJ-401(Palindromes).zip_401 Palindromes

    标题中的"UVaOJ-401(Palindromes)"表明这是一个关于解决UVa Online Judge(UVa OJ)上编号为401的编程挑战,该挑战的主题是"Palindromes",即回文串。回文串是指一个字符串无论从前读到后还是从后读到前都是相同的,...

    凸包 UVA109 题解

    根据给定的信息,本文将对UVA109题目的解决方案进行详细解析,重点在于理解题目背景、所需算法原理及具体实现步骤。 ### 题目背景与要求 UVA109是一道关于计算几何的经典题目,主要考察学生对于**凸包**(Convex ...

    uva OJ 题目分类

    世界著名大学UVA OJ平台上的题目部分分类,分的不好请原谅。

    uva_base_hfut_v13.2.tar.gz

    1.Uva_base的编译 在编译球队时,则需要在当前球队文件夹下打开终端输入执行以下命令(以下命令都是在root下执行的): ./configure make clean make 如果运行Uva_base后,出现球员越界或掉线的情况,就重新...

    uva531 LCS算法

    uva531最长公共子序列问题水题,应用简单的dp即可ac有更快速的方法欢迎讨论

    Uva 1510 - Neon Sign

    ### Uva 1510 - Neon Sign #### 问题背景与描述 在题目“Uva 1510 - Neon Sign”中,我们面对的是一个霓虹灯招牌设计问题。该霓虹灯招牌由一系列位于圆周上的角点组成,并通过发光管连接这些角点。发光管有两种...

    uva 部分题目解决代码

    在IT领域,特别是编程竞赛和算法训练中,UVA(University of Virginia)是一个知名的在线判题平台,它为程序员提供了大量的编程题目,旨在提升大家的算法思维和编程能力。"uva 部分题目解决代码"这个压缩包很可能是...

Global site tag (gtag.js) - Google Analytics