4 条题解

  • 1
    @ 2023-12-9 15:02:47

    经典动态规划

    def count_ways(coins, m):
        dp = [0 for i in range(m + 1)]
        dp[0] = 1
        for coin in coins:
            for i in range(coin, m + 1):
                dp[i] += dp[i - coin]
        return dp[m]
    n, m = map(int, input().split())
    coins = [int(input()) for i in range(n)]
    ways = count_ways(coins, m)
    print(ways)
    

    动态规划是正向计算的,我们不妨先试试逆向理解 或者按照代码推演一遍

    信息

    ID
    577
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    (无)
    递交数
    52
    已通过
    19
    上传者