1007 正整数分组
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题

 收藏
 关注

将一堆正整数分为2组,要求2组的和相差最小。
例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。
Input
第1行:一个数N,N为正整数的数量。
第2 - N+1行,N个正整数。
(N <= 100, 所有正整数的和 <= 10000)
Output
输出这个最小差
Input示例
5
1
2
3
4
5
Output示例
1

和POJ1014分宝石的思路差不多,看前一个整数到达的差值计算这个整数到达的差值,最后取最小值。

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std;int n;
int val[1005];
int dp[1005][10005];int main()
{memset(dp, 0, sizeof(dp));int i, j, len;scanf("%d", &n);for (i = 1; i <= n; i++){scanf("%d", &val[i]);}dp[0][5000] = 1;for (i = 1; i <= n; i++){for (j = 0; j <= 10000; j++){if (dp[i - 1][j]){dp[i][j + val[i]] = dp[i][j - val[i]] = 1;}    }}for (len = 0; len <= 5000; len++){if (dp[n][5000 + len]){cout << len << endl;return 0;}}return 0;
}

51nod1007:正整数分组 DP相关推荐

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

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

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

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

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

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

  4. HDU 1712 裸分组dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1712 N门课M天复习,第i门课花费j天获得的效益是dp[i][j] 求最大效益 分组背包,同一门课不能选两次 三 ...

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

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

  6. 51nod 正整数分组

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

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

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

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

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

  9. HDU 1712 ACboy needs your help(简单分组DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=1712 m天复习n门课程,得分最高 代码: #include<iostream> #include&l ...

  10. Java实现 藏宝架的宝物(分组DP,7.27阿里面试题)

    有个藏宝架有n层,每层的宝物数量不一,每个宝物都有其价值,现在要求拿出m个宝物,并且需要遵守规则: 每次只能拿选定层的两端的宝物 要拿出的m个宝物的总价值是各种方案里最大的 输入: n是层数,m是挑选 ...

最新文章

  1. 嵌入式驱动开发 视频学习推荐
  2. 【BZOJ1492】[NOI2007]货币兑换Cash 斜率优化+cdq分治
  3. 远程java接口说明
  4. Fast Stone超好用的截图工具,可截取长图,带滚动条的页面
  5. Oracle学习(十六)Oracle安装
  6. 使用vue控制元素显示隐藏
  7. NetBeans 7.4的本机Java打包
  8. Halcon学习笔记——机器视觉应用工程开发思路及相机标定
  9. 以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
  10. Enable SSH Server
  11. SHA1散列算法及其C++实现
  12. android框架xUtils使用介绍
  13. 一套简单的基本生活财富自由方案
  14. c语言的fprintf函数的用法,fprintf 和fscanf 函数
  15. 设置 Scite编辑器的默认编辑为 UTF-8 ,及其他一些参数配置
  16. Verilog学习之路(7)— 数字加法器
  17. IJCAI‘22 推荐系统论文梳理
  18. [VN2020 公开赛]simpleHeap-记录一次gef调试过程
  19. 使用Java建立一个公交管理系统,监督管理公交日常运营情况。
  20. 工作汇报 PPT 20PPPT-朴尔PPT

热门文章

  1. 电路实习报告:简易收音机的焊接
  2. 2018年世界计算机超算大赛,在世界大学生超级计算机竞赛(ASC18)总决赛中 青海大学超算团队成功获得ASC竞赛全球一等奖...
  3. Android中获取视频的第一帧图片的三种方法
  4. cesium 矢量图 编辑_openlayers添加、删除矢量图,多边形
  5. 第4.1章 飞鸟集爬虫采用结巴分词随机排序存储
  6. python wow自动打怪脚本官方教程_【按键精灵】魔兽世界LR 自动打怪脚本
  7. Windows 10 驱动开发 及 驱动签名
  8. Ruby与kiba的初学者etl教程
  9. “舒淇半停工原因”上热搜:人生下半场,拼的是健康
  10. tornado, twister, cyclone,Typhoon,hurricane…到底如何区别?