將一堆正整數分為2組,要求2組的和相差最小。
例如:1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。
input
第1行:乙個數n,n為正整數的數量。
第2 - n+1行,n個正整數。
(n <= 100, 所有正整數的和 <= 10000)
output
輸出這個最小差
sample input
512345
sample output
1
#include#include#include#includeusing namespace std;
const int n = 10002;
int dp[n],arr[n];
int main()
printf("%d\n",abs(sum-2*dp[sum/2]));
return 0;
}
正整數分組
將一堆正整數分為2組,要求2組的和相差最小。例如 1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。整數個數n 100,所有整數的和 10000 初看題目,第一想到貪心。怎麼貪?排序,每次把數放到 最有利 的一邊,最有利指的是每次都把數放到使得結果差值盡...
正整數分組
將一堆正整數分為2組,要求2組的和相差最小。例如 1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。整數個數n 100,所有整數的和 10000 初看題目,第一想到貪心。怎麼貪?排序,每次把數放到 最有利 的一邊,最有利指的是每次都把數放到使得結果差值盡...
正整數分組
一 題目描述 題目描述 將一堆正整數分為2組,要求2組的和相差最小。例如 1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。輸入第1行 乙個數n,n為正整數的數量。第2 n 1行,n個正整數。n 100,所有正整數的和 10000 輸出輸出這個最小差 樣...