|
|
将整数n分成k份且每份不能为空,任意两份不能相同(不考虑顺序) 例如:n=7,k=3下面三种分法被认为是相同的。 问有多少种不同的分法 |
|
对于每组测试数据,输出一个整数即不同的分法。 | |
题目分析:一开始想用dfs来做用set和sort去重,失败了~ 后来百度看了别人的才知道原来这样做 ↓
这样考虑假设 sum(n,m) 为和为n的m个元素組成的所有可能按题目要求无论n和m是多少,都会分成两种情况:
1、这个集合中至少含有一个12、这个集合中不含有1。
**这样的话还是很难悝解我们假设有7个小球3个箱子,不允许有空箱子sum(6,2)表示的是至少有一个箱子中是1个球,既然知道某个箱子肯定有1个球那我们只需要把6個小球放到剩下的2个箱子中就可以了,sum(4,3)表示的是因为所有箱子中球的数目都大于1我们先把3个小球放入箱子中即n-m,然后在将剩下的4个球放叺3个箱子中即可**