所以我有一个给定的C个n个正整数(c_1,…,c_n).任务是找到C的两个子集A和B,其中A仅包含正数,B仅包含C中数字的负数.然后,两个子集A和B的总和应总和为数d(d永远是积极的).我需要找出是否有两个这样的子集,如果有,它们包含哪些数字.

例如:{3,5,6,13,24} // d = 12

=>解决方案:true:{5,13} {-6}

我知道这是子集和问题的变化,我已经看到了一些类似问题的解决方案(带负数的子集和),但我需要使用动态编程来解决问题.我见过的大多数解决方案都使用递归,而不是使用DP.

我想我需要一个尺寸为(n * n * d)的3D布尔表S(i,j,k).但是当S(i,j,k)为真时何为假?因为我总是需要检查所有可能的方法来计算使用k数的和,它们可以是正数和负数(例如:对于4个数字{1,2,3,4},有2 ^ 4种方式来安排他们:1 2 3 4,1 – 2 3 4,1 – 2 – 3 4,…, – 1 2 – 3 – 4,1 – 2 – 3 – 4)

我的想法是正确的还是我做错了什么?

最佳答案 一种方法是在由(c_1,c_2,…,c_n,-c_1,-c_2,…, – c_n)组成的集合上使用标准动态编程子集和算法.

这将找到一个总和为d的子集(或证明不存在).

将A设置为子集中的所有正数,将B设置为所有负数.

您可能还希望删除A和B中出现的任何数字(例如,如果A中有3,B中有-3,那么您可以删除两者而不更改总和).

java 子集_java – 带负数的子集和相关推荐

  1. java语言_JAVA语言

    Java (计算机编程语言) JavaEE:12天掌握Java语言开发 - Java-环境搭建及基础语法 - 创客学院直播室 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C ...

  2. 用回溯法求子集和的c++代码

    用回溯算法解决问题的一般步骤为: 一.定义一个解空间,它包含问题的解. 二.利用适于搜索的方法组织解空间. 三.利用深度优先法搜索解空间. 四.利用限界函数避免移动到不可能产生解的子空间. 问题的解空 ...

  3. Java反射系列--Type接口及其子接口

    原文网址:Java反射系列--Type接口及其子接口_IT利刃出鞘的博客-CSDN博客 简介 说明 Type 是java反射机制中提供的一个接口,用来表示java中的所有类型的接口.它们包括原始类型. ...

  4. java延时_Java实现延时任务——DelayQueue

    应用开发过程中,我们常常需要用到延时任务的地方, 举个栗子: 在我们提交订单之后,15分钟内未支付则需要自动取消订单,当然,实现的方式有很多种,我们尝试用延时任务方式进行. java里自带的延时队列- ...

  5. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  6. Java中主线程如何捕获子线程抛出的异常

    Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...

  7. qq邮箱格式的Java代码_Java实现QQ邮件发送

    首先我们需要两个jar包,点击下面即可下载这两个包: 我们这里采用QQ邮箱发送邮件为例,代码如下: package ddd; import java.util.Properties; import j ...

  8. java mysql 占位符_在Java中编写带占位符的SQL语句

    C#中SQL中带占位符的语句 假设有一张学员信息表Student,通过表中的ID来找学员,查询的SQL语句如下 string sql = string.Format("select * fr ...

  9. java中不带package和带package的编译运行方式

    Java中不带package的程序和带package的程序编译的方式是不同的. 一.不带package的程序 建立个HelloWorld.java的文件,放入C:\,内容如下: public clas ...

最新文章

  1. 独家 | Meta的新学习算法可以教AI进行多任务处理
  2. 机器学习-终结者是否会出现
  3. Microsoft Visual Studio Learning Pack 2.0
  4. NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)
  5. polkit 重新安装_CentOS Linux 7.4中polkit服务启动失败
  6. java 面试 概率论_编程培训-115个Java面试题和答案B.pdf
  7. LeetCode 2059. 转化数字的最小运算数(BFS)
  8. 如何在Mac上搜索隐藏文件?
  9. zbar扫描无法近距离扫码_云值守:扫码购使用流程是怎样的?带来怎样的影响?...
  10. Linux下配置两个或多个Tomcat启动
  11. Sublime Text 3.1 编辑管理工程(项目)
  12. 砌体的弹性模量计算_砌体弹性模量等参数的取值.doc
  13. rabbitmq版本升级
  14. 计算机图形学矩形_《交互式计算机图形学》读书笔记 —— 第一章、图形系统和模型...
  15. JS生成gif动态图下载
  16. 2023 年对程序员英语学习记单词很有帮助的网站
  17. 大厂成熟Foc电机代码STM32f031C6. 把原先的原理图,给整理了
  18. js中的==和===
  19. 关于ALEXA的流量排名的参数介绍
  20. Tomcat环境变量配置(转载)

热门文章

  1. sql server 2008 每次都要use_这个方法选的都是强势股,短线操作,快进快出,不恋战,建议收藏...
  2. 山东大学linux应用实验五,【Linux】山东大学Linux应用课程实验记录
  3. Cap04_项目整体管理
  4. Java基础-方法(method)的应用
  5. mysql 命令导入sql文件导出sql文件
  6. WCF技术剖析之十七:消息(Message)详解(下篇)
  7. Python 函数(可变参数)
  8. 关于label在ie8,9下的兼容问题???
  9. asp.net 读取excel文件的一些方法,NPOI方法
  10. Expression Blend 利用 SketchFlow 制作原型