Extreme Discrete Summation ★★★★☆ 題組: Contest Archive with Online Judge 題號: Extreme Discrete Summation 解題者:蔡宗翰 解題日期: 2008 年 10 月 13 日 題意:給一個浮點數集合,請你計算出 A 題目限制 : 浮點數最大為 1000 ,浮點數僅有一位小數, 一組浮點數最多 100 個浮點數,最多 100 組測資
2 題意範例: Sample Input: Sample Output:
3 解法: 由題目給的公式可以瞭解,我們只需要關心他的小數 點後的數字是多少(例如說 11.4 我們只需要考慮 0.4 的部份,前面整數 11 替換成其他數字答案不變) 進一步釐清題目的意思後,題目相當於 “ 從一個整數集合中,任取八個數字的加總 ” 的所有總 和是多少,其中整數集合相當於題目小數點後的那個 數字 本問題可以利用類似 01 背包問題的 DP 方式解決
4 解法: DP 方法 讓 dp[i][j] 代表,使用 i 個數字組合出 j 的方法 則有 dp[0][0]=1 (使用 0 個數字組合出 0 的方法有一種) 針對集合 s[] 的每一個數字 s[k] dp[i][j+s[k]]+=dp[i-1][j] (如果用 i-1 個數字可以組合出 j 的話,則第 i 個數字選 擇 s[k] 可以讓 j+s[k] 這個數字的方法數多出 dp[i-1][j] 種)
5 討論: 無