题目是pku acm 3088
http://acm.pku.edu.cn/JudgeOnline/problem?id=3088
要求出组合的数量。 令dp[i][p]为有i个数字,而必须用p个的种类。
则dp[i][1] = i; (j==1)
dp[i][p] = C[i][p] * dp[p][p]; (p>1 p<i) C表示排列组合的取法,也用递推一次写好
dp[i][i] 可以理解成两种情况之和 1: 一次全按 2: 两种组合的相加A+B,并且A,B都非空,也就是说A,B 都属于
dp[i][p],p<i. 又因为dp[i]i]可以有AB也可以交换顺序成BA,就是两种可能性而 dp[i][p],p<i有A和B也是两种可能性。
所以dp[i][i]等于dp[i][1]+dp[i][2]+....+dp[i][i-1] +1