[BOJ] 2293


質問する

others

  • 全体を部分問題(部分問題の点火式)
  • に分割するかどうか.
  • 部分の解答はよくできましたか?
  • この点火式は一部の問題の関係をよく表現していますか?
  • 問題は가치의 합이 k가 되는 조합です
    つまり、一部の問題は가치의 합이 i가 되는 조합(1=<i<=k)>특정 동전을 썼을 때 가치의 합이 i가 되는 것 찾기を検索することです
    メモリは4 mbしかありません.アレイが必要です.
    ソース
    n, k = map(int, input().split())
    c = []
    dp = [0 for i in range(k + 1)]
    dp[0] = 1
    for i in range(n):
        c.append(int(input()))
    for i in c:
        for j in range(1, k + 1):
            if j - i >= 0:
                dp[j] += dp[j - i]
    print(dp[k])
  • 特定の価値から現在の硬貨が0以上であるかどうか(現在の硬貨で価値の和を見つけることができるかどうか)を減算
    1-1.
  • 、可能であれば、以前の価値の数を増やすことができます.
  • if j-i>=0 : do[j]+=dp[j-i]iがj−iで0より大きい場合、この値はj−i値の個数+現在のjの個数である.
    iが2,jが7であれば,7時の数字は5(7−2)時の数字である.
    7を作るためには、2+5でもいいし、5の場合の数に2を足すと、7を作ることができる数が1つ増えます.
    (そうですか…?)

    ソース
  • 🥺🥲😭