## 雙塔
題目描述
有n個數字,要求將這n個數字分成兩部分(兩部分可以數字個數不同),使得兩部分數字之和的差最小
輸入輸出格式
輸入:
第一行為n
第二行有n個數,即題目中所描述那樣
輸出:
兩部分和的最小差
樣例
輸入:
5
1 3 2 3 5
輸出:
0
數據范圍
40%滿足\(n<=20\)
100%滿足\(n<=100\),數字之和\(<=1000\)
樣例解釋
(1+3+3)-(2+5)=0
對于40分做法,我們可以考慮二進制枚舉/搜索(哪都有你),
時間復雜度為O(2^N)
枚舉出各部分數字的組成,然后再暴力求和保留最優值。
其實,我們不難發現,對于一組固定的樣例,所有數字的和總是固定的。
然后將數字的和作為容量,跑一個01背包
背包里儲存的是能否組成這個數字
然后再將所有數的和折中尋找。
找到第一個可以組成的數就是答案