1007 正整數分組

2022-03-05 08:53:34 字數 686 閱讀 8821

將一堆正整數分為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

輸出這個最小差
input示例

512

345

output示例

1
分成兩組當兩組的資料都趨向於算術平均值的時候此時的差值最小,res來表示乙個揹包,揹包的空間是sum/2,能放物品的價值是每個數字的值,運用01揹包求出揹包趨近於算術平均值的最大值,則另一組資料的和就是sum-res,兩組資料的差值就可以表示為sum - 2 * res.

#include#include#includeusing namespace std;

int main()

int flag = sum / 2;

memset(res, 0, sizeof(res));

for (int i = 0; i < n; i++)

}cout << sum - res[flag] * 2 << endl;

return 0;

}

1007 正整數分組

1007 正整數分組 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 將一堆正整數分為2組,要求2組的和相差最小。例如 1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。input 第1行 乙個數n,n為正整數的數量。...

51Nod 1007 正整數分組

將一堆正整數分為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 輸出這個最小差input...

51Nod 1007 正整數分組

1007 正整數分組 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 將一堆正整數分為2組,要求2組的和相差最小。例如 1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。input 第1行 乙個數n,n為正整數的數量。...