很不漂亮的寫法
題意就是9個人要分3堆 給你很多種組合的分數 問你分3堆(9個人都要分)的最高總分
我用dynamic programming, 紀錄某幾個人被選擇時的最高分
題目的input存成dp3[x] 表示選這3個人的最高分
x用bit壓縮紀錄是哪3個人 例如(1, 3, 6)的分數是10 則 dp3[0001001010(二進位)] = 10 (1<<1 + 1<< 3 + 1<< 6)
然後去算dp6(所有6個人分法的最高分)的所有情況 再算 dp6+dp3的組合 即可知道9個人都有分的最高總分
好啦我再說什麼我也不太清楚(哭) 直接用一個dp陣列維護就好 懶得改惹(還要判斷人數)
代碼+-看: