将一堆正整数分为2组,要求2组的和相差最小。

显然我们可以把所有可能组合成的数求出来。

然后从总和的中间开始往大找,找到了就是其中一个的分组,就可以求出答案了。

#include<cstdio>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;const int MAXN = 11234;
int f[MAXN], w[MAXN], n, sum;int main()
{f[0] = 1;scanf("%d", &n);REP(i, 0, n){scanf("%d", &w[i]);sum += w[i];}REP(i, 0, n)for(int j = sum; j >= w[i]; j--)if(f[j - w[i]])f[j] = 1;for(int ans = (sum + 1) / 2; ans <= sum; ans++)if(f[ans]){printf("%d\n", ans - (sum - ans));break;}return 0;
} 

转载于:https://www.cnblogs.com/sugewud/p/9819440.html

51nod 正整数分组相关推荐

  1. 51 Nod 1007 正整数分组【类01背包】

    1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组, ...

  2. 51nod 1128 正整数分组 V2(二分)

    给出一个长度为N的正整数数组,不改变数组元素的顺序,将这N个数分为K组.各组中元素的和分别为S1,S2....Sk.如何分组,使得S1至Sk中的最大值最小? 例如:1 2 3 4 5 6分为3组,{1 ...

  3. 51Nod 1007 正整数分组(01背包)

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

  4. 51Nod 1007 正整数分组 | DP (01背包)

    Input示例 5 1 2 3 4 5 Output示例 1 分析:2组的差最小,那么每一组都要接近sum/2,这样就转化成了普通的0 - 1背包了 #include <bits/stdc++. ...

  5. - 动规讲解基础讲解八——正整数分组

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

  6. 正整数分组(51Nod-1007)

    题目 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 输入 第1行:一个数N,N为正整数的数量. ...

  7. 51nod-正整数分组问题(基础方程DP-01背包)

    正整数分组 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 思路: 这题的实质其实也是0-1背包问 ...

  8. 动态规划 —— 背包问题

    [概述] 背包问题(Knapsack problem)是一种组合优化的NP完全问题. 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最 ...

  9. 算法.动态规划 导航/数塔取数字问题

    目录 前言 从1+1开始 总结下概念 地图到图 回头看 代码 动态规划经典问题 前言 下面的概念和公式可能会吓到你,看不懂没关系,就是让你恶心的.反正我看着也挺恶心,专业就是让你看不懂,看懂了怎么能叫 ...

最新文章

  1. win8.1系统用户看过来,0x80004005错误解决大法!
  2. 创建 Npm+webpack
  3. api如何使用_什么是API, API是如何工作的?
  4. 如何使用eclipse创建项目
  5. 面试题 08.03. Magic Index LCCI 魔术索引
  6. 李彦宏千字愿景内部信:10次提到“用户”
  7. 简述linux常见的安全措施,六个常用的Linux安全基本措施
  8. 图标代码_通过两行代码即可调整苹果电脑 Launchpad 图标大小!
  9. 设置负数_合同到期提示设置,还在手动计算就out了,学会today函数一键搞定
  10. Date() 小于等于当天
  11. MongoDB:MapReduce基础及实例
  12. 【DS】About Stack
  13. python | prophet的案例实践:趋势检验、突变点检验等
  14. jenkins 常用插件
  15. 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理
  16. android陀螺仪方向,android – 如何使用罗盘读数和陀螺仪读数获取手机的方位角?...
  17. Preparing for Exams(割线定理)
  18. (VQA)LRTA: A Transparent Neural-Symbolic Reasoning Framework with Modular Supervision for Visual Que
  19. fir.im Weekly - 揭秘直播移动 APP 技术实现
  20. Android动画制作

热门文章

  1. Spring_day02--Spring的aop操作
  2. gmock学习01---Linux配置gmock
  3. RDIFramework.NET 中多表关联查询分页实例
  4. App Hub上传应用的状态说明
  5. 干得累死,并不见得老板就待见你?
  6. 发现数据对象 -- 数据库开发的关键
  7. Socket.IO聊天室~简单实用
  8. 再探ChannelPipeline 的初始化
  9. Spring 核心容器类BeanDefinitionReader
  10. BeanDefinitionRegistryPostProcessor​ 的处理源码流程