当前位置:网站首页>集合划分差最小问题(01背包)
集合划分差最小问题(01背包)
2022-08-04 14:09:00 【Harris-H】
集合划分差最小问题(01背包)
一个序列分为两个集合,使得两个集合数的和差值最小。
考虑背包,容量为 s u m 2 \dfrac{sum}{2} 2sum,转化为判定问题。
#include<bits/stdc++.h>
using namespace std;
const int N=5e3+5;
int n,s;
int a[N];
bool dp[N];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]),s+=a[i];
int m = s>>1;
dp[0] = true;
for(int i=1;i<=n;i++)
for(int j=m;j>=a[i];j--)
dp[j]|=dp[j-a[i]];
int ans = 0;
for(int i=m;i;i--){
if(dp[i]){
ans=s-(i<<1);
break;
}
}
printf("%d\n",ans);
return 0;
}
如果要输出方案,就再开一个 p r e pre pre数组记录使用的数,然后dfs输出路径。
边栏推荐
猜你喜欢
随机推荐
Niuke.com Brush Question Record || Linked List
AutoCAD DWG,DXF文件导出高清图片、PDF
干掉visio,这个画图神器真的绝了
php中的ceil和floo以及round函数「建议收藏」
烂大街的缓存穿透、缓存击穿和缓存雪崩,你真的懂了?
c#之winform(软件开发)
没有Project Facets的解决方法
量化细胞内的信息流:机器学习时代下的研究进展
idea去掉spark的日志
PAT甲级:1040 Longest Symmetric String
记录都有哪些_js常用方法总结
国家安全机关对涉嫌危害国家安全犯罪嫌疑人杨智渊实施刑事拘传审查
基于 Next.js实现在线Excel
ICML 2022 | 图神经网络的局部增强
理论篇1:深度学习之----LetNet模型详解
中大型商业银行堡垒机升级改造就用行云管家!必看!
router---dynamic route matching
(记录)异步并发,多线程处理表的统计
【LeetCode】1403. 非递增顺序的最小子序列
CCF GLCC officially opened | Kyushu Cloud open source experts bring generous bonuses to help universities promote open source









