UVa 674 Coin Change【记忆化搜索】

摘要:
=-1)返回dp[s][i];2223dp[s][i]=0;24表示(intj=i;j=硬币[j];j++)25dp[s][i]+=dfs(s-coin[j],j);2627返回dp[s][i];28}2930intmain(){31intn;32memset(dp,-1,sizeof(dp));33 for(inti=0;i˂5;i++)dp[0][i]=1;34 while(scanf(“%d”,&n)!=EOF){3536printf(“%lld”,dfs(n,0));37}38 return0;39}视图代码

题意:给出1,5,10,25,50五种硬币,再给出n,问有多少种不同的方案能够凑齐n

自己写的时候写出来方案数老是更少(用的一维的)

后来搜题解发现,要用二维的来写

http://blog.csdn.net/keshuai19940722/article/details/11025971

这一篇说的是会有面值的重复问题,还不是很理解

还有就是一个预处理的问题, 看了题解之后再自己写,很习惯的把处理dp数组写到while循环里面,一直tle

后来看到这篇题解

http://www.cnblogs.com/scau20110726/archive/2012/12/25/2832968.html

因为题目没有说会有多少组数据,如果把处理dp数组放在while循环里面的话,如果给出一个10w组的数据,那肯定就会超时(相当于每算一次,就要处理一次dp数组)

所以就把预处理放在外面就好啦

UVa 674 Coin Change【记忆化搜索】第1张UVa 674 Coin Change【记忆化搜索】第2张
 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<cstring> 
 4 #include <cmath> 
 5 #include<stack>
 6 #include<vector>
 7 #include<map> 
 8 #include<set>
 9 #include<queue> 
10 #include<algorithm>  
11 #define mod=1e9+7;
12 using namespace std;
13 
14 typedef long long LL;
15 const int INF = 0x7fffffff;
16 const int maxn=8005;
17 LL dp[maxn][15];
18 int coin[5]={1,5,10,25,50};
19 
20 LL dfs(int s,int i){
21     if(dp[s][i]!=-1) return dp[s][i];
22     
23     dp[s][i]=0;
24     for(int j=i;j<5&&s>=coin[j];j++)
25     dp[s][i]+=dfs(s-coin[j],j);
26     
27     return dp[s][i];    
28 }
29 
30 int main(){
31     int n;
32         memset(dp,-1,sizeof(dp));
33         for(int i=0;i<5;i++) dp[0][i]=1;
34     while(scanf("%d",&n)!=EOF){
35     
36         printf("%lld
",dfs(n,0));
37     }
38     return 0;
39 }
View Code

免责声明:文章转载自《UVa 674 Coin Change【记忆化搜索】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【总结】关于彩虹表学习阶段性总结反射+javacsv+scv文件构建资源获取下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

关于ArcMap中的地图文档单位

在ArcMap中地图文档的单位有度分秒、千米、米、十进制等很多种,但是ArcMap中的测量距离功能的实现必须建立在图层框架具有投影坐标系的情况下才能进行正确的计算,否则是不能进行的,IPolyline的Lenth属性获取的单位为十进制,需要转换成米。...

从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法

具体下载地址:HTTP://www.microsoft.com/downloads/details.aspxFAMILYID=c06b8369-60dd-4b64-A44B-84b371ede16d&displayLang=ZH-CN对于一些早期用户,如果连接字符串中使用的是“Microsoft.Jet.OLEDB.4.0”,由于喷气项目已经停止,该项目不再...

登陆脚本

#!' num_ count+=1其他:lock_ input(用户名)#############1##########_###!...

H3C 12508 收集诊断信息

案例:H3C12508单板卡出现remove状态,需要配合研发收集诊断信息。)总体:12500交换机返回三种文件----故障时诊断信息,主备单板的日志文件,主备单板的诊断日志操作步骤:一、故障时诊断信息:disdiagnostic-informationdiag收集必须在问题出现的时候,单板重起之前执行。在save时请选择Y保存到CF卡方式。一般情况下,此命...

自定义样式滚动条

自定义IE浏览器滚动条样式追溯浏览器对滚动条的自定义,恐怕最早的就是IE浏览器了。感觉IE浏览器滚动条自定制功能并不是很强,只能控制一样显示各个部分的颜色而已,像宽度,结构等都无法控制,要靠出个性点的滚动条,很难!自定义FireFox浏览器滚动条在网上找了很多关于Firfox自定义浏览器滚动条的方法,发现firefox中却实是不支持的。...

其他查询

如果有其他关联表使用此ID,则无需从数据库中再次查找。1) 查询表是否具有SELECTOBJECT_ID相当于以下语句:SELECTidFROMsysobjectsWHERE Name=N'Students and type=N'U'2)通常用于在创建表和视图时进行决策。...