nyoj 176— 整数划分(二)
2016-03-11 21:28
253 查看
整数划分(二)
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
输入
2 5 2 5 3
第一行是一个整数T表示共有T组测试数据(T<=50)
每组测试数据都是两个正整数m,n,其中(1<=n<=m<=100),分别表示要拆分的正数和拆分的正整数的个数。
输出输出拆分的方法的数目。
样例输入
2 5 2 5 3
样例输出
2 2
数位dp:
dp[i][j]表示整数i拆分成j个的数量;
dp[i-1][j-1]等于i拆分成j个包含1的数量;
dp[i-j][j]表示i拆分成j个不包含1的数量;
所以:dp[i][j]=dp[i-j][j]+dp[i-1][j-1];
#include<cstdio> #include<algorithm> using namespace std; int main() { int dp[110][110]={1}; for(int i=1;i<=100;i++) for(int j=1;j<=i;j++) dp[i][j]=dp[i-j][j]+dp[i-1][j-1]; int T; scanf("%d",&T); while(T--) { int n,k; scanf("%d %d",&n,&k); printf("%d\n",dp [k]); } }
相关文章推荐
- hdu3746 Cyclic Nacklace(kmp找循环节)
- 【BZOJ 3282】Tree Link Cut Tree模板题
- 手动实现ArrayList
- UIPickerView简单应用
- (15) PHP 随笔---LAMP Linux基本操作 对文件、目录的操作
- 2.简单求和[递归法]
- simd 双线性插值
- opencv配置之非配置文件版
- 服务器select模型
- 【CS229 lecture19】微分动态规划
- javascript在html中的加载顺序
- (14) PHP 随笔---LAMP Linux基础
- (13) PHP 随笔---Smarty模板引擎 缓存的高级应用 22
- 如何用虚拟机装SQL Server
- 在Fragment中OnActivityResult方法中接收Activity中返回的值
- 如何用虚拟机装SQL Server
- CallableStatement 的用法
- 经典迷宫问题DFS 深度优先
- parentNode、parentElement,childNodes、children 它们有什么区别呢?
- (12) PHP 随笔---Smarty模板引擎 单模板多缓存、局部不缓存 20--21