f[i][j]=f[i-j][j]+f[i][j-1],结果很大需要高精度。

  1. //#pragma comment(linker, "/STACK:1024000000,1024000000")
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<iostream>
  7. #include<sstream>
  8. #include<cmath>
  9. #include<climits>
  10. #include<string>
  11. #include<map>
  12. #include<queue>
  13. #include<vector>
  14. #include<stack>
  15. #include<set>
  16. using namespace std;
  17. typedef long long ll;
  18. typedef unsigned long long ull;
  19. typedef pair<int,int> pii;
  20. #define pb(a) push(a)
  21. #define INF 0x1f1f1f1f
  22. #define lson idx<<1,l,mid
  23. #define rson idx<<1|1,mid+1,r
  24. #define PI 3.1415926535898
  25. template<class T> T min(const T& a,const T& b,const T& c) {
  26. return min(min(a,b),min(a,c));
  27. }
  28. template<class T> T max(const T& a,const T& b,const T& c) {
  29. return max(max(a,b),max(a,c));
  30. }
  31. void debug() {
  32. #ifdef ONLINE_JUDGE
  33. #else
  34.  
  35. freopen("in.txt","r",stdin);
  36. //freopen("d:\\out1.txt","w",stdout);
  37. #endif
  38. }
  39. int getch() {
  40. int ch;
  41. while((ch=getchar())!=EOF) {
  42. if(ch!=' '&&ch!='\n')return ch;
  43. }
  44. return EOF;
  45. }
  46. const int MAX_LEN=;
  47. const int BASE=;
  48. struct BigInt
  49. {
  50. int bit[MAX_LEN];
  51. int len;
  52. BigInt(int n=)
  53. {
  54. bit[]=n;
  55. len=;
  56. }
  57. BigInt operator + (const BigInt &ant)
  58. {
  59. int next=;
  60. for(int i=;i<len||i<ant.len;i++)
  61. {
  62. bit[i]=(i<len?bit[i]:)+(i<ant.len?ant.bit[i]:)+next;
  63. next=bit[i]/BASE;
  64. bit[i]%=BASE;
  65. }
  66. len=max(len,ant.len);
  67. if(next)bit[len++]=next;
  68. return *this;
  69. }
  70. void output()
  71. {
  72. printf("%d",bit[len-]);
  73. for(int i=len-;i>=;i--)
  74. printf("%05d",bit[i]);
  75. printf("\n");
  76. }
  77. };
  78. BigInt dp[][];
  79. BigInt f(int n,int k)
  80. {
  81.  
  82. if(n==)return BigInt();
  83. if(k==)return BigInt();
  84. if(n<k)return f(n,n);
  85. if(dp[n][k].len!=||dp[n][k].bit[]!=)return dp[n][k];
  86. dp[n][k]=f(n-k,k)+f(n,k-);
  87. return dp[n][k];
  88. }
  89. int main()
  90. {
  91. int n,k;
  92. while(scanf("%d%d",&n,&k)!=EOF)
  93. {
  94. for(int i=;i<=n;i++)
  95. for(int j=;j<=k;j++)
  96. dp[i][j]=BigInt();
  97. f(n,k);
  98. dp[n][k].output();
  99. }
  100. return ;
  101. }

POJ 3181 Dollar Dayz DP的更多相关文章

  1. POJ 3181 Dollar Dayz(全然背包+简单高精度加法)

    POJ 3181 Dollar Dayz(全然背包+简单高精度加法) id=3181">http://poj.org/problem?id=3181 题意: 给你K种硬币,每种硬币各自 ...

  2. POJ 3181 Dollar Dayz && Uva 147 Dollars(完全背包)

    首先是 Uva 147:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_p ...

  3. poj 3181 Dollar Dayz(完全背包)

    Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5419   Accepted: 2054 Descr ...

  4. POJ 3181 Dollar Dayz 简单DP

    这DP虽然简单 但是思考一下还是挺好的 题意是 1,2,3,4....k 用加法凑成N 每个数可取不限个数 令dp[i][j] 表示前i种数凑成j的方案数 然后dp[i][j] = dp[i - 1] ...

  5. poj 3181 Dollar Dayz (整数划分问题---递归+DP)

    题目:http://poj.org/problem?id=3181 思路:将整数N划分为一系列正整数之和,最大不超过K.称为整数N的K划分. 递归:直接看代码: 动态规划:dp[i][j]:=将整数i ...

  6. POJ 3181 Dollar Dayz(高精度 动态规划)

    题目链接:http://poj.org/problem?id=3181 题目大意:用1,2...K元的硬币,凑成N元的方案数. Sample Input 5 3 Sample Output 5 分析: ...

  7. POJ 3181 Dollar Dayz (完全背包,大数据运算)

    题意:给出两个数,n,m,问1~m中的数组成n,有多少种方法? 这题其实就相当于 UVA 674 Coin Change,求解一样 只不过数据很大,需要用到高精度运算... 后来还看了网上别人的解法, ...

  8. poj 3181 Dollar Dayz

    题意:给定一个数p,要求用K种币值分别为1,2,3...K的硬币组成p,问方案数,1,2,2和2,2,1算一种方案即与顺序无关,n <= 1000,k <= 100// 用完全背包做了 这 ...

  9. poj 3181 Dollar Dayz(求组成方案的背包+大数)

    可能nyist看见加的背包专题我老去凑热闹,觉得太便宜我了.他们新加的搜索专题居然有密码. 都是兄弟院校嘛!何必那么小气. 回到正题,跟我写的上一篇关于求组成方案的背包思路基本一样,无非就是一个二维费 ...

随机推荐

  1. MapReduce编程job概念原理

    在Hadoop中,每个MapReduce任务都被初始化为一个job,每个job又可分为两个阶段:map阶段和reduce阶段.这两个阶段分别用两个函数来表示.Map函数接收一个<key,valu ...

  2. EF框架 转载

    http://www.cnblogs.com/zrdm/p/5060360.html Model First Model First我们称之为"模型优先",这里的模型指的是&quo ...

  3. Python偏函数

    偏函数 一个带n 个参数,curried 的函数固化第一个参数为固定参数,并返回另一个带n-1 个参数函数对象 >>> from functools import partial & ...

  4. 去块率波 Deblocking filter

    基于块的视频编码的一个典型特点就是在图像中会出现偶发的可察觉的块结构,这是由于重构块的边缘像素与块内部像素相比恢复精度要低,块效应是目前压缩编码最明显的视觉失真之一.在H.264/ AVC视频编码标准 ...

  5. FW: javascripts 要不要加引号

    Javascript编程风格  http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html 作者: 阮一峰 日期: ...

  6. Karma: 3 - 测试覆盖率

    karma 的插件 karma-coverage 提供了测试代码覆盖率的支持. karma 的页面:http://karma-runner.github.io/0.8/config/coverage. ...

  7. openStack镜像制作

    参考链接: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/OpenStack/page/Creating ...

  8. MySQL 的 RowNum 实现

    MySQL 的 RowNum 实现 MySQL 下面没有RowNum,排序后序号却无法得到,比较麻烦! 在网上找了再三,通过比较,确认了以下的方法是可行的 : rownum, CollectSn ,b ...

  9. Http的请求对象

    Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的.您可以查看 HTTP ...

  10. CSS3常用选择器(一)

    在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素.比如最常用到的#id,.class,标签选择器. 随着CSS3到来,增加了很多新型选择器,这里就常用的做一个总结. 1.属性选择器. 在c ...