比赛时候看到这道题的我的内心是崩溃的啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
清晰的记得数据结构课上老师一步一步给推过这个问题的递推式,然而我忘记了啊啊啊啊啊啊啊啊啊啊啊啊
果然出来混都是要还的,不好好听课的结果就是只能自己手推一遍。。。。好了进入正题。
先贴题目 西电oj 1096 http://acm.xidian.edu.cn/problem.php?id=1096
先举几个例子
1 的拆分数 1
##1
2 的拆分数 2
## 1+1
## 2
3 的拆分数 3
## 1+1+1
## 1+2
## 3
4 的拆分数 5
## 1+1+1+1
## 1+1+2
## 1+3
## 2+2
## 4
5 的拆分数 7
## 1+1+1+1+1
## 1+1+1+2
## 1+2+2
## 1+1+3
## 2+3
## 1+4
## 5
6 的拆分数 11
## 1+1+1+1+1+1
## 1+1+1+1+2
## 1+1+2+2
## 2+2+2
## 3+1+1+1
## 3+2+1
## 3+3
## 4+1+1
## 4+2
## 5+1
## 6
7 的拆分数 15 。。。
设n为待拆分的数。m为 拆分组合中的最大数。f(n,m)为待求的拆分数
f(6,6)=11
f(6,5)=10
f(6,4)=9
f(6,3)=7
f(6,2)=4
好了,接下来考虑边界情况。
1。n==1或者m==1时 f(n,m)=1
2。n==m时 f(n,m)= f(n,n-1)+1 //eg:f(6,6)