当前位置:网站首页>集合划分差最小问题(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输出路径。
边栏推荐
猜你喜欢
metaRTC5.0新版本支持mbedtls(PolarSSL)
【LeetCode】38、外观数列
How to find the location of a pdf file in endnote literature
Redis 复习计划 - Redis主从数据一致性和哨兵机制
Problem solving-->Online OJ (18)
《C 陷阱与缺陷 》阅读概要
leetcode 48. Rotate Image (Medium)
The Internet of things application development trend
nVisual二次开发——第二章 nVisual API操作指南Swagger使用
leetcode 48. Rotate Image 旋转图像(Medium)
随机推荐
1375. 二进制字符串前缀一致的次数-前序遍历法
Analysis and application of portrait segmentation technology
ACL 2022 | 社会科学理论驱动的言论建模
C# 动态加载卸载 DLL
How to find the location of a pdf file in endnote literature
如何才能有效、高效阅读?猿辅导建议“因材因时施教”
Cockpit human-computer interaction "undercurrent", voice "down", multi-modal "up"
Convolutional Neural Network Basics
从理论到实践:MySQL性能优化和高可用架构,一次讲清
博途200/1500PLC多段曲线控温FB(支持40段控温曲线、段曲线搜索、暂停、跳段等功能)
烂大街的缓存穿透、缓存击穿和缓存雪崩,你真的懂了?
idea removes spark logs
router---dynamic route matching
Niuke.com Brush Question Record || Linked List
汉诺塔怎么玩
并发刺客(False Sharing)——并发程序的隐藏杀手
How to play the Tower of Hanoi
零基础可以转行软件测试吗 ?这篇文章告诉你
TS - type
理论篇1:深度学习之----LetNet模型详解