http://www.ahathinking.com/archives/110.html

这道题跟捞鱼问题一样,都是刚进实验室新生培训那会儿做过的题目,不过这个是一师姐当时找工作的面试题。

如题,并输出该子序列

测试用例:2,9,5,7,4,11,10

分别输出最接近33、40、47、60的子序列

分析:N个数之和接近M,将M看做一个容量的背包,这个题目就变成了典型的01背包,M容量下求最优解并输出最优方案,这在01背包中都整理过,上代码:

#include <iostream>
using namespace std;char state[11][101]; /* 设 N <= 10 M <= 100 记录路径 */
int dp[101];         /* 使用一维数组01背包 */
int value[11];       /* 本题可将费用与价值看做同一值 */
int i, j;void main()
{int N, M;scanf("%d", &N);for(i = 0; i < N; ++i){scanf("%d",&value[i]);}while(scanf("%d", &M) != EOF){memset(dp,0,sizeof(dp));/* 01背包 */for(i = 0; i < N; ++i){for(j = M; j >= value[i]; --j){int tmp = dp[j-value[i]] + value[i];if(tmp > dp[j]){dp[j] = tmp;state[i][j] = 1;}}}printf("最接近值:%d\n",dp[M]);/* 输出方案 */i = N;j = M;while(i-- >= 0){if(state[i][j] == 1){printf("%d ",value[i]);j -= value[i];}}printf("\n");}
}
输出结果如下图

从给定的N个正数中选取若干个数之和最接近M相关推荐

  1. 从n个数中选取m个数的所有组合

    题目: n个数1,2,...,n,从这n个数中任意选m个数,输出所有不同组合,共有C(n,m)种不同组合.如n=4,m=2,会产生如下输出: 1 2 1 3 2 3 1 4 2 4 3 4如n=5,m ...

  2. 数组中的三数之和最接近目标数

    题目: 给你一个长度为 n 的整数数组 nums 和 一个目标值 target.请你从 nums 中选出三个整数,使它们的和与 target 最接近. 返回这三个数的和. 假定每组输入只存在恰好一个解 ...

  3. 1.给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的 任意个数之和 等于 target,并打印出所有结果的索引,索引不能重复。

    /*做的一家公司笔试题,两数之和解决,N数之和想了半天,最终参考了别人的思路,收货不错参考地址:https://blog.csdn.net/dengz_j/article/details/114540 ...

  4. 2道编程题:1.给定一个字符串,计算字符串中数值的个数并求和。

    // 转载于:https://www.cnblogs.com/BlueBlue-Sky/p/8495420.html

  5. 在一个数组中找到几个数之和为某个数字

    思路一: for循环嵌套遍历(想作死可以试下) 思路二: 双指针(分别指向头.尾,往之间收缩) 思路三: hashmap(用空间换时间) 两个数字之和为某个数 # 思路三 def getRes_Has ...

  6. 分别用BFS和DFS求给定的矩阵中“块”的个数

    目录 背景介绍 BFS实现 基本思想 获取相邻位置元素技巧 BFS函数 DFS实现 基本思想 DFS函数 完整代码 背景介绍 背景 给出一个mxn的矩阵,矩阵中的元素为0或1.称位置(x,y)与其上下 ...

  7. python从1到n出现了多少个1-【算法21】从1到n的正数中1的出现次数

    [题 目]输入一个整数n,求从1到n这n个正数中,1出现的次数.例如:输入12,出现一的数字有1,10,11,12共有5个1,则输出5. [思 路1]几乎所有的算法题目都有很直观容易想到的方法,当然这 ...

  8. Winform中选取指定文件夹并获取其下所有文件

    场景 Winform中选取指定文件夹,并获取该文件夹下所有文件名,不包含子文件夹.考虑子文件夹可以使用递归实现. 注: 博客: BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客 ...

  9. 【Matlab】矩阵中选取任意子矩阵

    1.Introduction 好久没用Matlab写代码了,嗯,也没用其他语言. 至于怎么实现在矩阵中提取子矩阵,又学了一会,好记性不如烂笔头呀. 2.Materials and methods 如下 ...

最新文章

  1. 分布式任务调度系统V1
  2. 随机挑选分类训练集和测试集
  3. SSH框架是个怎么回事?(转)
  4. 程序员基本功书籍--程序员修炼之道——从小工到专家
  5. xadmin oracle 查询,Django admin 实现search_fields精确查询实例
  6. 每日算法系列【LeetCode 121】买卖股票的最佳时机
  7. 变换型设计与事务型设计
  8. MySQL误删数据找回和恢复
  9. 如何在linux系统中快速切换目录(目录栈的使用),如何在Linux下环境下快速切换工作目录...
  10. 应广PFS122单片机比较器测供电电源VDD电压带临界点消抖处理
  11. HTB靶场 Shared
  12. iOS 15:如何查找丢失或失窃的 iPhone,就算它已关机也可远程定位
  13. 云打码案例 python
  14. EPICS -- pyDevice
  15. 【单片机】一文彻底搞懂单片机程序烧录
  16. (转)关于如何学好游戏3D引擎编程的一些经验
  17. Java的基本特性和优势
  18. python数据分析岗位_python拉勾数据职位分析
  19. 更改SQL Server数据库名、数据库文件名的方法
  20. 内存导致的电脑游戏中显示hdmi无信号 从而死机的情况

热门文章

  1. 【机器学习算法】XGBoost
  2. memoryerror: Unable to allocate array with shape (60000, 28, 28) and data ty
  3. matlab摄像头录像保存在哪里,matlab连接摄像头读取视频部分解释
  4. ACL 2021 | Glancing Transformer:惊鸿一瞥的并行生成模型
  5. 关于Transformer和BERT,在面试中有哪些细节问题?
  6. ACL 2020 | 基于稠密段落检索的开放域问答系统技术
  7. 我跑了ERNIE和BERT两个模型,结果出乎意料......
  8. AAAI 2019 Oral | 把Cross Entropy梯度分布拉‘平’,就能轻松超越Focal Loss
  9. acm第二节2020.4.2-4.4补
  10. ClickHouse【环境搭建 02】设置用户密码的两种方式(明文+SHA256)及新用户添加及只读模式 Cannot execute query in readonly mode 问题解决