题目描述

一个数组中有若干正整数,将此数组划分为两个子数组,使得两个子数组各元素之和a,b的差最小,对于非法输入应该输出ERROR。

输入

数组中的元素

输出

降序输出两个子数组的元素和

样例输入

10 20 30 10 10
10 20 abc 10 10

样例输出

40 40
ERROR

思路:

令sum为集合中所有的元素之和,当子集合的和接近 sum/2 时,两个子集合的和相差最小

用DP的背包思想来考虑这个问题:把 sum/2 看作是背包的容量V,把元素的数值看作是占用背包的空间与得到的价值,例如,元素值是K,那么占用背包大小是K,得到的价值也是K。这样的话,只要我们拿着容量为V的背包,收集到最大的价值,就是最接近 sum/2 的数。

令第一个子集合的和为“背包收集到的最大价值”A,则第二个集合的和就是sum-A

问题 A: 第二题(划分一个集合为差值最小的两个子集合)相关推荐

  1. 将一个数组划分为和差值最小的子数组

    要求:将数组中的数划分为两组,使得两个子数组的和的差值最小,数组中的数的取值范围为0<X<100,元素个数也是大于0小于100.如:a[]={2,4,5,6,7},得出的两组数:{2,4, ...

  2. 编写一个C程序,实现以下功能:输入n个人的身高,然后从n个人中选出身高差值最小的两个人作为礼仪(如果差值相同的话,选取其中最高的两个人),要求输出两个礼仪的身高。

    题目要求 编写一个C程序,实现以下功能: 输入n个人的身高,然后从n个人中选出身高差值最小的两个人作为礼仪 (如果差值相同的话,选取其中最高的两个人),要求输出两个礼仪的身高.(使用函数实现) 思路难 ...

  3. 验证哥德巴赫猜想:任何一个偶数(大于2)都可以由两个素数组成,要求输出两个素数差值最小的素数对

    题目描述 任意一个偶数(大于2)都可以由2两个素数组成,组成偶数的2的素数有很多种情况,要求输出组成指定偶数的两个素数差值最小的素数对. 代码实现 import java.util.*; import ...

  4. 集合:求A、B两个集合的交集、并集和补集的代码(C语言)

    集合:求A.B两个集合的交集.并集和补集的代码(C语言) #include <stdio.h> #define N 100 main(){int a[N],b[N],c[N],d[N];i ...

  5. ruby 集合 分组_将Ruby中两个集合的所有元素结合在一起

    ruby 集合 分组 In this program, we will see how we can combine the two sets? This is not a very difficul ...

  6. 快速得到两个集合的并集java_Java 程序计算两个集合的并集

    Java 程序计算两个集合的并集 在此示例中,我们将学习计算Java中两个集合的并集. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用addAll()计算两个集合的并集 示例import ...

  7. 《算法笔记》-两个子集合个数差最小,子集和的差最大

    思路: 1.用快速排序思想,找到中位数并排好,令中位数左边均小于该数,右边均大于该数. 2.此时得到两个集合,s1,s2.易知,s1 中每个数均小于中位数,s2中每个数均大于中位数.即s1 < ...

  8. java求两个集合的差集_Java中取两个集合的并集、交加和差集

    java如何求两个集合的交集和并集呢?? 其实java的API中已经封装了方法.今天写个简单的例子测试一下:(例子中以java.util.ArrayList为例) package org.suk; i ...

  9. C语言:根据集合元素有互异性,将两个集合并集(一种方法之一)

    输入: 集合A,B均由5个元素 第一行输入集合A,第二行输入集合B,每个元素用空格隔开,每5个整数互不相等 输出: C=AUB 集合C,并将元素从小到大排序 #include<stdio.h&g ...

最新文章

  1. SpringSecurity csrf验证忽略某些请求
  2. 【TypeScript】字符串转义符序列
  3. ns-allinone错误锦囊
  4. 方法有多少个参数才算多?
  5. python 创建文件夹1003python 创建文件夹_在python中创建动态文件名
  6. Redis 学习---(6)Redis 键(key)
  7. apt-get install 的参数(add-apt-repository)
  8. Android 属性动画简单说明前篇(一)
  9. c语言ad转换实验报告,有关单片机AD转换的实验报告
  10. CCNA学习-路由器交换机的管理配置
  11. LAYA和TypeScript制作H5入门——页面制作
  12. Windows下利用Chrome调试IOS设备页面
  13. 【2021年最新版Java校招面试题目合集】
  14. JAVA中startwith函数的用法
  15. 怎样使用计算机上的高级共享设置密码,怎么设置电脑共享密码
  16. 台式计算机的cpu是指,台式电脑CPU是A10指的是什么?
  17. 变异凯撒1(BUCTF在线评测)
  18. 一篇文章带你更好了解热门Java开发工具IDEA!
  19. 电脑的网络,一会通一会不通,一般是IP冲突
  20. 接口分析--腾讯软件中心应用信息接口

热门文章

  1. AI一分钟|外媒:AI将消灭资本主义;特斯拉再遭唱空:量产存疑外加事故不断...
  2. AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
  3. 原来你是这样子的OpenAI!来看看它背后那些有趣的人和事
  4. Java 8 一行代码解决了空指针问题,太厉害了...
  5. 一个注解搞定 SpringBoot 接口防刷,还有谁不会?
  6. 连夜撸了一个简易聊天室
  7. 在滴滴和头条干了 2 年后端开发,太真实了…
  8. 一次 Jar 包升级引发的血案 amp; 解决
  9. 浪漫的形式有100种,单身的就1种!
  10. 字节最新文本生成图像AI,训练集里居然没有一张带文字描述的图片?!