湊出總額的有序投幣方式數
Count Ordered Token Sequences for a Total・apcs-14-01
- APCS 高級
- 0/1 背包
- APCS 實作專題・DP — Knapsack
時間限制 2 秒・記憶體 64 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
販賣機有 n 種代幣,面額分別為 c1, …, cn,每種代幣的數量不限。你要依序投入代幣,使投入的面額總和恰好為 x。請問有幾種不同的投幣序列?投入的順序不同就算不同的序列,例如先投 1 再投 2,與先投 2 再投 1 是兩種。
答案可能很大,請輸出除以 109+7 的餘數。
輸入格式
第一行有兩個整數 n 與 x。 第二行有 n 個整數,依序為各種代幣的面額。
輸出格式
輸出一個整數,表示投幣序列數除以 109+7 的餘數。
限制
- 1 ≤ n ≤ 100
- 1 ≤ x ≤ 106
- 1 ≤ ci ≤ 106
範例
範例 1
輸入
3 9
2 3 5輸出
8範例 2
輸入
2 4
1 2輸出
5說明
- 範例 1 的八種序列總和都是 9。
- 範例 2 只有面額 1 與 2,序列共五種。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。