关注
01背包问题。将数组划分为两部分,要求两部分的和的之差绝对值最小。
#include <bits/stdc++.h>
using namespace std;
int dp[210000];
int n,arr[51];
int main()
{
int n;
scanf("%d",&n);
int sum = 0;
for(int i = 0 ; i < n ; i ++){
scanf("%d",&arr[i]);
arr[i] /= 1024;
sum += arr[i];
}
for(int i = 0 ; i < n ; i ++)
for(int j = sum/2 ; j >= arr[i] ; --j)
dp[j] = max(dp[j],dp[j-arr[i]]+arr[i]);
printf("%d\n",(sum-dp[sum/2])*1024);
return 0;
}
/*
5
3072 3072 7168 3072 1024
*/
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
29771次浏览 497人参与
# 如果有时光机,你最想去到哪个年纪? #
47039次浏览 799人参与
# 实习吐槽大会 #
31202次浏览 152人参与
# 非技术岗简历怎么写 #
209684次浏览 2860人参与
# 晒一晒你的工位 #
85609次浏览 304人参与
# 26届秋招投递记录 #
3562次浏览 102人参与
# 2025牛客秋招季 #
3816次浏览 122人参与
# 双非能在秋招上岸吗? #
215126次浏览 1142人参与
# 被AI治愈的瞬间 #
52285次浏览 597人参与
# 怎么防止在试用期被辞退 #
122294次浏览 911人参与
# 我的租房踩坑经历 #
26869次浏览 278人参与
# 穿越回高考你还会选现在的专业吗 #
21342次浏览 266人参与
# 我和mentor的爱恨情仇 #
43387次浏览 277人参与
# 打工人的工作餐日常 #
40420次浏览 343人参与
# 软开人,说说你的烦心事 #
48059次浏览 359人参与
# 毕业旅行去哪玩儿 #
1219次浏览 32人参与
# 硬件/芯片公司工作体验 #
75170次浏览 664人参与
# 商战,最累的是我们 #
13017次浏览 52人参与
# 打工人锐评公司红黑榜 #
145882次浏览 918人参与
# 25届秋招公司红黑榜 #
262144次浏览 1094人参与