公告歡迎來到 Larry's notes,近期會持續整理網站。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
UVa - 1213 解題紀錄
題目: UVa - 1213 - Sum of Different Primes
題目說明
給兩個整數 n、k,求將 n 拆為 k 個質數相加的結果有幾種。
Input: 每行兩個整數依序代表 n、k,若皆為 0 表結束。
Output: 輸出將 n 拆為 k 個質數相加的結果有幾種。
解題思路
因為 n <= 1120,所以先使用質數篩找出小於等於 1120 的所有質數。
定義 dp[i][j],表將 i 拆為 j 個質數相加的情況數。
之後 DP,對於 dp[i][j] 來說,dp[i][j] += dp[i - v][j - 1],對於所有 v 為小於等於 i 的質數。
可思考成 v 為最後加入的質數。
由於 DP 縮減了一維,所以計算時要從後面往前算。
參考解法
1 |
|
參考資料
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論