采药

#dp[i][j]表示j只用前i个有多少方案
def money_split(x=100,p=[1,2,5]):
    n=len(p)
    dp=[[1 if (val==0 and j==0) else 0 for val in range(0,x+1)] for j in range(0,n+1)]
    for i in range(1,n+1):
        for j in range(0,x+1):
            if(j-p[i-1]<0):
                dp[i][j]=dp[i-1][j]
                continue
            dp[i][j]=dp[i-1][j]+dp[i][j-p[i-1]]
    return dp[n][x]
print(money_split())

posted @ 2026-03-23 11:50  RReally  阅读(3)  评论(0)    收藏  举报
//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中