poj 3181 Dollar Dayz (整数划分问题---递归+DP)
题目:http://poj.org/problem?id=3181
思路:将整数N划分为一系列正整数之和,最大不超过K。称为整数N的K划分。
递归:直接看代码:
动态规划:dp[i][j]:=将整数i做j划分的方法数。
dp[i][j]=dp[i][i]; if(j>i)
dp[i][j]=dp[i-j][j]+dp[i][j-1];//分j出现不出现两种情况
dp[i][j]=dp[i][j-1]+1;if(i==j)//单独的一个j和另外一种不包含j
#include <iostream>
#include <cstring>
using namespace std;
unsigned long f(int n, int max) // 将整数n划分成一系列整数序列之和,序列最大数为max
{
if (n == 1 || max == 1)
return 1;
else if (n < max)
return f(n, n);
else if (n == max)
return 1 + f(n, max-1);
else
return f(n,max-1) + f(n-max, max);
}
long long dp[1100][110];
int main()
{
//cout<<f(5,3)<<endl; // 将5划分成1,2,3组成的序列之和的方法数
int n,k;
while(cin>>n>>k)
{
memset(dp,0,sizeof(dp)); for(int i=0;i<=k;i++) dp[0][i]=1; for(int i=1;i<=k;i++)
{
for(int j=1;j<=n;j++){
if(i>j) dp[j][i]=dp[j][j];
else if(i==j) dp[j][i]=1+dp[j][i-1]; //其实可以归纳到下面一种情况
else dp[j][i]=dp[j-i][i]+dp[j][i-1]; }
}
cout<<dp[n][k]<<endl;
}
}
poj 3181 Dollar Dayz (整数划分问题---递归+DP)的更多相关文章
- POJ 3181 Dollar Dayz(全然背包+简单高精度加法)
POJ 3181 Dollar Dayz(全然背包+简单高精度加法) id=3181">http://poj.org/problem?id=3181 题意: 给你K种硬币,每种硬币各自 ...
- POJ 3181 Dollar Dayz && Uva 147 Dollars(完全背包)
首先是 Uva 147:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_p ...
- poj 3181 Dollar Dayz(完全背包)
Dollar Dayz Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5419 Accepted: 2054 Descr ...
- POJ 3181 Dollar Dayz DP
f[i][j]=f[i-j][j]+f[i][j-1],结果很大需要高精度. //#pragma comment(linker, "/STACK:1024000000,1024000000& ...
- POJ 3181 Dollar Dayz 简单DP
这DP虽然简单 但是思考一下还是挺好的 题意是 1,2,3,4....k 用加法凑成N 每个数可取不限个数 令dp[i][j] 表示前i种数凑成j的方案数 然后dp[i][j] = dp[i - 1] ...
- POJ 3181 Dollar Dayz(高精度 动态规划)
题目链接:http://poj.org/problem?id=3181 题目大意:用1,2...K元的硬币,凑成N元的方案数. Sample Input 5 3 Sample Output 5 分析: ...
- POJ 3181 Dollar Dayz 【完全背包】
题意: 给出两个数,n,m,问m以内的整数有多少种组成n的方法完全背包+大数划分 思路: dp[i][j] := 用i种价格配出金额j的方案数. 那么dp[i][0] = 1,使用任何价格配出金额0的 ...
- POJ 3181 Dollar Dayz (完全背包,大数据运算)
题意:给出两个数,n,m,问1~m中的数组成n,有多少种方法? 这题其实就相当于 UVA 674 Coin Change,求解一样 只不过数据很大,需要用到高精度运算... 后来还看了网上别人的解法, ...
- poj 3181 Dollar Dayz
题意:给定一个数p,要求用K种币值分别为1,2,3...K的硬币组成p,问方案数,1,2,2和2,2,1算一种方案即与顺序无关,n <= 1000,k <= 100// 用完全背包做了 这 ...
随机推荐
- java反射机制(工厂模式)
http://www.phpddt.com/dhtml/338.html java里面没有typeof,js有. 我终于实现了用反射机制编写的工厂模式.java反射在工厂模式可以体现. 包含产品接口类 ...
- 我对Backbone中url属性的理解
Model中有一个url属性,而且有一个urlRoot属性. Collection中也有一个url属性. // 这是Model中的url方法 url: function() { var base = ...
- 【转】深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代码 ...
- StrokeStart与StrokeEnd动画
通过修改CAShapeLayer的StrokeStart与StrokeEnd的值来实现画图动画 效果图: 代码部分: #import "ViewController.h" @int ...
- S_OK与S_FALSE,E_FAIL
S_OK是COM服务器返回正确 S_FALSE是COM服务器返回错误,不过这个错误是可以不处理的,不影响程序正常运行.只是结果不是想要的 E_FAIL是必须处理的错误. //// Success co ...
- Nginx log
ngx_http_log_module 模块通过指定的格式把请求写入日志.请求登陆到location处理结束的环境中.如果重定向发生在请求处理过程中,这或许与location原理不同. Example ...
- 使用Office2007向cnblogs.com发布文章
步骤: 在cnblogs.com创建一个博客 在office2007中新建->博客文章->创建. 配置帐户:
- Css透明度
全透明代码:{background:transparent} 半透明代码:{filter:alpha(opacity=80);-moz-opacity:0.8;width:auto !importan ...
- 一个PHP常用表单验证类(基于正则)
一个基于正则表达式的PHP常用表单验证类,作者:欣然随风.这个表单判断类的功能有:验证是否为指定长度的字母/数字组合.验证是否为指定长度汉字.身 份证号码验证.是否是指定长度的数字.验证邮件地址.电话 ...
- Bug :”解压压缩文件失败: cpio; 在头中不存在归档“
问题描述: 在rpm包目录下执行rpm -ivh *rpm -force时,出现标题错误 解决办法: *src.rpm包也就源码包不能被直接进行安装,需要先将src.rpm包进行编译生成二进制的rpm ...