问题 A: 第二题(划分一个集合为差值最小的两个子集合)
题目描述
一个数组中有若干正整数,将此数组划分为两个子数组,使得两个子数组各元素之和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: 第二题(划分一个集合为差值最小的两个子集合)相关推荐
- 将一个数组划分为和差值最小的子数组
要求:将数组中的数划分为两组,使得两个子数组的和的差值最小,数组中的数的取值范围为0<X<100,元素个数也是大于0小于100.如:a[]={2,4,5,6,7},得出的两组数:{2,4, ...
- 编写一个C程序,实现以下功能:输入n个人的身高,然后从n个人中选出身高差值最小的两个人作为礼仪(如果差值相同的话,选取其中最高的两个人),要求输出两个礼仪的身高。
题目要求 编写一个C程序,实现以下功能: 输入n个人的身高,然后从n个人中选出身高差值最小的两个人作为礼仪 (如果差值相同的话,选取其中最高的两个人),要求输出两个礼仪的身高.(使用函数实现) 思路难 ...
- 验证哥德巴赫猜想:任何一个偶数(大于2)都可以由两个素数组成,要求输出两个素数差值最小的素数对
题目描述 任意一个偶数(大于2)都可以由2两个素数组成,组成偶数的2的素数有很多种情况,要求输出组成指定偶数的两个素数差值最小的素数对. 代码实现 import java.util.*; import ...
- 集合:求A、B两个集合的交集、并集和补集的代码(C语言)
集合:求A.B两个集合的交集.并集和补集的代码(C语言) #include <stdio.h> #define N 100 main(){int a[N],b[N],c[N],d[N];i ...
- ruby 集合 分组_将Ruby中两个集合的所有元素结合在一起
ruby 集合 分组 In this program, we will see how we can combine the two sets? This is not a very difficul ...
- 快速得到两个集合的并集java_Java 程序计算两个集合的并集
Java 程序计算两个集合的并集 在此示例中,我们将学习计算Java中两个集合的并集. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用addAll()计算两个集合的并集 示例import ...
- 《算法笔记》-两个子集合个数差最小,子集和的差最大
思路: 1.用快速排序思想,找到中位数并排好,令中位数左边均小于该数,右边均大于该数. 2.此时得到两个集合,s1,s2.易知,s1 中每个数均小于中位数,s2中每个数均大于中位数.即s1 < ...
- java求两个集合的差集_Java中取两个集合的并集、交加和差集
java如何求两个集合的交集和并集呢?? 其实java的API中已经封装了方法.今天写个简单的例子测试一下:(例子中以java.util.ArrayList为例) package org.suk; i ...
- C语言:根据集合元素有互异性,将两个集合并集(一种方法之一)
输入: 集合A,B均由5个元素 第一行输入集合A,第二行输入集合B,每个元素用空格隔开,每5个整数互不相等 输出: C=AUB 集合C,并将元素从小到大排序 #include<stdio.h&g ...
最新文章
- SpringSecurity csrf验证忽略某些请求
- 【TypeScript】字符串转义符序列
- ns-allinone错误锦囊
- 方法有多少个参数才算多?
- python 创建文件夹1003python 创建文件夹_在python中创建动态文件名
- Redis 学习---(6)Redis 键(key)
- apt-get install 的参数(add-apt-repository)
- Android 属性动画简单说明前篇(一)
- c语言ad转换实验报告,有关单片机AD转换的实验报告
- CCNA学习-路由器交换机的管理配置
- LAYA和TypeScript制作H5入门——页面制作
- Windows下利用Chrome调试IOS设备页面
- 【2021年最新版Java校招面试题目合集】
- JAVA中startwith函数的用法
- 怎样使用计算机上的高级共享设置密码,怎么设置电脑共享密码
- 台式计算机的cpu是指,台式电脑CPU是A10指的是什么?
- 变异凯撒1(BUCTF在线评测)
- 一篇文章带你更好了解热门Java开发工具IDEA!
- 电脑的网络,一会通一会不通,一般是IP冲突
- 接口分析--腾讯软件中心应用信息接口
热门文章
- AI一分钟|外媒:AI将消灭资本主义;特斯拉再遭唱空:量产存疑外加事故不断...
- AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
- 原来你是这样子的OpenAI!来看看它背后那些有趣的人和事
- Java 8 一行代码解决了空指针问题,太厉害了...
- 一个注解搞定 SpringBoot 接口防刷,还有谁不会?
- 连夜撸了一个简易聊天室
- 在滴滴和头条干了 2 年后端开发,太真实了…
- 一次 Jar 包升级引发的血案 amp; 解决
- 浪漫的形式有100种,单身的就1种!
- 字节最新文本生成图像AI,训练集里居然没有一张带文字描述的图片?!