博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ-176整数划分(二)
阅读量:4563 次
发布时间:2019-06-08

本文共 1248 字,大约阅读时间需要 4 分钟。

 

 

整数划分(二)

时间限制:
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
1 #include 
2 #include
3 4 using namespace std; 5 6 int fun(int m, int n) //等同于把 m 个苹果放在 n 个盘子里,每个盘子不空 7 { 8 if(m < n) 9 return 0;10 if(m == n || n == 1)11 return 1;12 else13 return fun(m-n, n) + fun(m-1, n-1);//分成两种情况:1.至少有一个盘子中放了一个苹果; 2.每个盘子中苹果个数都大于1个14 }15 16 int main()17 {18 int T, n, m;19 scanf("%d", &T);20 while(T--)21 {22 scanf("%d%d", &m, &n);23 printf("%d\n", fun(m, n));24 }25 return 0;26 }27 28 29 //本题更快的方法就是先打表30 31 #include
32 int main()33 {34 int a,b,n,m,k;35 int ok[105][105]={
0};36 ok[1][1]=1;37 for(a=2;a<=100;a++)38 {39 for(b=1;b<=a;b++)40 ok[a][b]=ok[a-b][b]+ok[a-1][b-1];41 }42 scanf("%d",&k);43 while(k--)44 {45 scanf("%d%d",&n,&m);46 printf("%d\n",ok[n][m]);47 }48 }

 

转载于:https://www.cnblogs.com/dongsheng/archive/2013/04/06/3002716.html

你可能感兴趣的文章
Chales常用操作
查看>>
C++ 运算符重载<<
查看>>
windows镜像
查看>>
Flask 模板语法
查看>>
ZOJ FatMouse' Trade 贪心
查看>>
音乐播放器
查看>>
SQL COOKBOOK (Ch.1-10)
查看>>
创建数组
查看>>
dict使用
查看>>
[转] 移动平台Html5的viewport使用经验
查看>>
ASP.NET MVC的帮助类HtmlHelper和UrlHelper
查看>>
《Python数据科学手册》第五章机器学习的笔记
查看>>
ubuntu16.04 配置爬虫环境
查看>>
Centos7,PHP7安装swoole
查看>>
02_ListActive中响应事件 并LogCat输出
查看>>
doubleclick adx note
查看>>
Celery框架
查看>>
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
查看>>
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>
linux Valgrind使用说明-内存泄漏
查看>>