SDUT_2015寒假集训_背包_E-小P的故事——神奇的换零钱
来源:互联网 发布:数控镗床圆角怎么编程 编辑:程序博客网 时间:2024/04/28 07:36
题目描述
已知A国经济很落后,他们只有1、2、3元三种面值的硬币,有一天小P要去A国旅行,想换一些零钱,小P很想知道将钱N兑换成硬币有很多种兑法,但是可惜的是他的数学竟然是体育老师教的,所以他不会啊、、、他只好求助于你,你可以帮他解决吗?
提示:输入数据大于32000组。
提示:输入数据大于32000组。
输入
每行只有一个正整数N,N小于32768。
输出
对应每个输入,输出兑换方法数。
示例输入
100 1500
示例输出
884 188251这题若是用三层循环暴力枚举的话。。。后果可想而知。。。肯定超时。。。所以,我们换一种思路,建立一个一维数组dp[]来表示当前的方法数,很容易得出dp[j]=dp[j]+dp[j-a[i]]。数组a为钱的种类(即钱的面值)。
代码
#include <iostream>#include <memory.h>using namespace std;int dp[100000];int main(){ ios::sync_with_stdio(false); int n,i,j,a[4]= {0,1,2,3}; memset(dp,0,sizeof(dp)); dp[0]=1; for(i=1; i<=3; i++) { for(j=a[i]; j<32768; j++) { dp[j]=dp[j]+dp[j-a[i]]; } } while(cin>>n) { cout<<dp[n]<<endl; } return 0;}
0 0
- SDUT_2015寒假集训_背包_E-小P的故事——神奇的换零钱
- SDUT_2015寒假集训_背包_A-小P的故事——神奇的Dota
- 寒假训练--01背包完全背包--小P的故事——神奇的换零钱
- SDUT_2015寒假集训_背包_F-小P寻宝记——粗心的基友
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱 背包
- 小P的故事——神奇的换零钱 背包
- SDUTOJ 2777 小P的故事——神奇的换零钱 背包
- 小P的故事——神奇的换零钱(完全背包)
- uiautomatorviewer 新增功能 compressed 之 Device 端细节
- x86 calling conventions
- C# WPF 不包含"XXXX_Loaded"的定义 找不到可接受类型为 问题原因 解决办法
- NSGenericException', reason: '*** Collection <__NSArrayM: 0x12a9f7d0> was mutated while being enumer
- Android常用插件
- SDUT_2015寒假集训_背包_E-小P的故事——神奇的换零钱
- Tomcat测试“http://localhost:8080”失败解决方法
- SDWebImage 缓存策略以及缓存清理
- IntelliJ IDEA 优化总结
- 高效显示Bitmap3--->Cached Bitmap
- Android常用的工具类
- Quick-Cocos2d-x 学习手册(一):游戏元素
- 学习 MonkeyTalk 以及实践
- 什么是互联网思维