题解-数的拆分

这篇博客探讨了一个整数n如何拆分为k个非空部分的问题,强调了动态规划的解决方案。通过分析输入输出格式和样例,博主解释了如何使用动态规划的思路,提出转移态方程dp[i][j]=dp[i-j][j]+dp[i-1][j-1],以求解不同分法的数量。
摘要由CSDN通过智能技术生成

题目描述

将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。

例如:n=7,k=3,下面三种分法被认为是相同的。

1,1,5;
1,5,1;
5,1,1;

问有多少种不同的分法。

输入输出格式

输入格式:
n,k (6<n <=200,2 <=k<=6)

输出格式:
11个整数,即不同的分法。

输入输出样例
输入样例#1
7 3
输出样例#1
4

说明

四种分法为
1,1,5;
1,2,4;
1,3,3;
2,2,3.

解析部分

思路

利用DP,把i平均分成j份,从中再找出数字规律,(如i,j的关系),即可。

解析

我们用dp[i][j]来表示i有几个数,j来表示分成几份,dp[i][j]就表示i个数被分成j份。显然,当i=j时,只有一种情况;当i<j时,就不可能有情况。得dp[0][0]=1;那么第二种情况题目中说了的,他们不可能i<j,因此,这可以省略。
最后,我们来想如果这k个数中不含1时,(如2,2,3),我们就必须将每个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值