23 lines
694 B
Python
23 lines
694 B
Python
# import lib
|
||
#https://blog.csdn.net/elma_tww/article/details/86538836
|
||
# def functions
|
||
#dp[i][j]表示将整数i划分为j份的方案数
|
||
#dp[i-j],拿出j个数,分别放上1,dp[i-j][2],2表示分为两份
|
||
def divide(n,k,dp):
|
||
for i in range(1,n+1):
|
||
for j in range(1,k+1):
|
||
if i>=j:#划分的分数不能超过给定的整数
|
||
dp[i][j]=dp[i-j][j]+dp[i-1][j-1]#裂项相消
|
||
print(i,j,dp[i][j])
|
||
return dp[n][k]
|
||
|
||
#main
|
||
if __name__ == "__main__":
|
||
n,k = map(int,input().split(','))
|
||
# n = int(n)
|
||
# k = int(k)
|
||
dp = [[0] *(k+1) for i in range(n+1)]
|
||
dp [0][0]=1
|
||
#print(dp)
|
||
result = divide(n,k,dp)
|
||
print(result) |