正整数分组

将一堆正整数分为2组,要求2组的和相差最小。
例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。

思路:

这题的实质其实也是0-1背包问题,但是要想理解到这一步,或者说想要用0-1背包来解决这个问题,就必须将问题抽象化到一定的程度才可以。

一列数,无序,给他分成两半,要想实现两半的和的差最小,就是恨不得恰好均分了。那么我们按照0-1背包的那种”一维式“的思维来想,这个问题就别转化成了从第一个数开始到最后一个数,选出一些数,使他们的和最大程度的接近所有数的和的一半,将这些数作为一组,那么剩下的数就是另一组了。

按照之前0-1背包的思路,这题就迎刃而解了。


#include <cmath>
#define INF 65535
using namespace std;int n;
int f[10007];
int sum;
int num[107];int main()
{int other;while(~scanf("%d",&n)){sum = 0;for(int i = 1;i <= n;i++){scanf("%d",&num[i]);sum += num[i];}memset(f,0,sizeof(f));for(int i = 1;i <= n;i++)for(int j = sum/2;j >= num[i];j--)f[j] = max(f[j],f[j-num[i]]+num[i]);other = sum - f[sum/2];printf("%d\n",abs(other-f[sum/2]));}return 0;
}

转载于:https://www.cnblogs.com/immortal-worm/p/4932863.html

51nod-正整数分组问题(基础方程DP-01背包)相关推荐

  1. HDU 1864 最大报销额 (dp 01背包)

    最大报销额 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  2. Codeforces Round #104 (Div. 2) E DP(01背包模型) +组和+除法取模求逆元

    题意: 规定只包含4或7的数为幸运数字,给定n个数的序列,求他的子序列,使得该子序列的长度为k并且满足该子序列中不存在相同的两个幸运数字.问一共寻在多少种可能.(只要该数的下标不同则认为是不同的序列) ...

  3. DP(01背包) UESTC 1218 Pick The Sticks (15CCPC C)

    题目传送门 题意:长度为L的金条,将n根金棍尽可能放上去,要求重心在L上,使得价值最大,最多有两条可以长度折半的放上去. 分析:首先长度可能为奇数,先*2.然后除了两条特殊的金棍就是01背包,所以dp ...

  4. ☆【UVA - 624 】CD(dp + 0-1背包 + 记录路径)

    题干: You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music ...

  5. 最大报销额 HDU - 1864(DP+01背包)

    最大报销额 HDU - 1864 点击跳转↑ 题设:多组输入,每组输入一对Q和N,分别代表当前的公费,和需要报销的账单总数.接下来N行,每行开始一个m,接下来是m项物品的名称和价格.求:在所有符合报销 ...

  6. 【DP|01背包】AHU-603 LOL系列之蒙多的春天

    LOL系列之蒙多的春天 Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB Description 蒙多最近运气太 ...

  7. [DP][01背包]积木城堡

    动态规划 积木城堡 时间限制: 1 Sec 内存限制: 128 MB 题目描述 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木.小XC是一个比 ...

  8. 洛谷P1504 积木城堡【DP+01背包】【黄】

    Date:2022.02.27 题目描述 XC 的儿子小 XC 最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木. 小 XC 是一个比他爸爸 XC 还聪明的孩子 ...

  9. 51nod 正整数分组

    将一堆正整数分为2组,要求2组的和相差最小. 显然我们可以把所有可能组合成的数求出来. 然后从总和的中间开始往大找,找到了就是其中一个的分组,就可以求出答案了. #include<cstdio& ...

最新文章

  1. 【分布式架构】“高并发” -- 详解
  2. Javascript--键盘事件的组合使用
  3. 【连载】优秀程序员的45个习惯之37——提供有用的错误信息
  4. Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
  5. kernel笔记——块I/O
  6. 乐视秒杀架构解读:从零开始搭建百万每秒订单系统
  7. 【Python入门】Python 63个内置函数超级详解
  8. java中的日期时间的计算与比较
  9. 997西方行政学说 (2)
  10. 学习Spring Boot:(八)Mybatis使用分页插件PageHelper
  11. python——pandas库之DataFrame数据结构基础
  12. 新上手jupyterlab安装及问题解决
  13. 19【CTR15】会话兴趣⽹络
  14. 寒武纪2021数字后端笔试题
  15. 微雪树莓派PICO笔记——8-PIO(可编程输入输出接口)
  16. 国际商务谈判 简答题
  17. 掌握这几点 让你快速写出优质电影解说文案!
  18. MySQL的一级索引和二级索引
  19. C++ 泛型编程(五) 模版重载与特例化
  20. 1046错误mysql_数据库实例:如何解决mysql 1046错误

热门文章

  1. 英雄联盟祖安服务器位置,LOL“4区版英雄联盟”:城区有2个,郊区有2个,山区有1个...
  2. redis linux无法启动服务,CentOS7 下redis不能开机启动,求解?
  3. cad自动标注界址点_这样绘制cad施工图,提升效率至少3倍以上!
  4. img设置宽高不生效_便宜 好用 不掉盘 保姆级粒子云刷机攻略
  5. 原生 ajax查询,原生ajax啦啦啦
  6. icf表格_ICF企业教练实践大奖案例——建立改变和拯救生命的教练文化
  7. jersey球衣是什么_球衣知识------关于NIKE球衣(Jersey)的介绍
  8. 第二届全国计算机安全技能比赛,第2届网络安全技能大赛试题(2018年).PDF
  9. mysql code name作为字段_MySQL索引管理及执行计划
  10. mac 硬盘未推出 硬盘无法读取_在Mac上(正确的)格式化U盘