整数划分(二)
来源:互联网 发布:淘宝上的论文发表 编辑:程序博客网 时间:2024/05/03 07:03
整数划分(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
- 输入
- 第一行是一个整数T表示共有T组测试数据(T<=50)
每组测试数据都是两个正整数m,n,其中(1<=n<=m<=100),分别表示要拆分的正数和拆分的正整数的个数。 - 输出
- 输出拆分的方法的数目。
- 样例输入
25 25 3
- 样例输出
22
思路:用二维数组temp[i][j] 表示将i分为j组可分的种数, 递推式为temp[i][j] = temp[i-j][j](组合中无1)(将j分成j份, 在将j-i分成j份, 两者相加, 结果无1)+temp[i-1][j-1](组合中含1)(加上个一, 都含一了)。
#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX 105using namespace std;int temp[MAX][MAX];void fun(){int i, j;memset(temp, 0, sizeof(temp));temp[1][1] = 1; //注意将第一个数据初始化下for(i = 2; i < MAX; i++){ for(j = 1; j <= i; j++) //j<=i !{ temp[i][j] = temp[i-1][j-1] + temp[i-j][j]; }}}int main(){ int n, m, k;fun(); cin>>k;while(k--){ cin>>n>>m;// printf("%d\n", temp[n][m]); cout<<temp[n][m]<<endl;} return 0;}
- 整数划分(二)
- 整数划分(二)
- 整数划分(二)
- NYOJ - 整数划分(二)
- 整数划分(二)+ nyoj176
- nyoj整数划分(二)
- nyoj整数划分(二)
- NYOJ 整数划分(二)
- nyoj 整数划分(一)(二)
- nyoj 176 整数划分(二)
- 南阳 oj 176 整数划分(二)
- NYOJ 题目176整数划分(二)
- nyoj 176— 整数划分(二)
- nyoj 176 整数划分(二)【dp】
- NYOJ 176 整数划分(二)
- NYOJ 176 整数划分(二)(DP)
- NYOJ176 整数划分(二)(DP,DFS)
- NYOJ 176 整数划分(二)
- pca
- T界需求最旺的16项技能
- opencv 的pca
- 发一些乙醇原创的资料
- [垃圾回收]session
- 整数划分(二)
- Linux常见命令
- 关于在Android中使用Google Map只显示网格问题的解决方法
- hdu 3097 The Partition of A Graph uva 11396 Claw Decomposition
- PMP中的分析技术
- Oracle 调优相关视图
- Ubuntu 查看文件以及磁盘空间大小管理
- hdu1171Big Event in HDU (多重背包)
- 很受启发的一则故事