从给定的N个正数中选取若干个数之和最接近M
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相关推荐
- 从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 ...
- 数组中的三数之和最接近目标数
题目: 给你一个长度为 n 的整数数组 nums 和 一个目标值 target.请你从 nums 中选出三个整数,使它们的和与 target 最接近. 返回这三个数的和. 假定每组输入只存在恰好一个解 ...
- 1.给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的 任意个数之和 等于 target,并打印出所有结果的索引,索引不能重复。
/*做的一家公司笔试题,两数之和解决,N数之和想了半天,最终参考了别人的思路,收货不错参考地址:https://blog.csdn.net/dengz_j/article/details/114540 ...
- 2道编程题:1.给定一个字符串,计算字符串中数值的个数并求和。
// 转载于:https://www.cnblogs.com/BlueBlue-Sky/p/8495420.html
- 在一个数组中找到几个数之和为某个数字
思路一: for循环嵌套遍历(想作死可以试下) 思路二: 双指针(分别指向头.尾,往之间收缩) 思路三: hashmap(用空间换时间) 两个数字之和为某个数 # 思路三 def getRes_Has ...
- 分别用BFS和DFS求给定的矩阵中“块”的个数
目录 背景介绍 BFS实现 基本思想 获取相邻位置元素技巧 BFS函数 DFS实现 基本思想 DFS函数 完整代码 背景介绍 背景 给出一个mxn的矩阵,矩阵中的元素为0或1.称位置(x,y)与其上下 ...
- python从1到n出现了多少个1-【算法21】从1到n的正数中1的出现次数
[题 目]输入一个整数n,求从1到n这n个正数中,1出现的次数.例如:输入12,出现一的数字有1,10,11,12共有5个1,则输出5. [思 路1]几乎所有的算法题目都有很直观容易想到的方法,当然这 ...
- Winform中选取指定文件夹并获取其下所有文件
场景 Winform中选取指定文件夹,并获取该文件夹下所有文件名,不包含子文件夹.考虑子文件夹可以使用递归实现. 注: 博客: BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客 ...
- 【Matlab】矩阵中选取任意子矩阵
1.Introduction 好久没用Matlab写代码了,嗯,也没用其他语言. 至于怎么实现在矩阵中提取子矩阵,又学了一会,好记性不如烂笔头呀. 2.Materials and methods 如下 ...
最新文章
- 分布式任务调度系统V1
- 随机挑选分类训练集和测试集
- SSH框架是个怎么回事?(转)
- 程序员基本功书籍--程序员修炼之道——从小工到专家
- xadmin oracle 查询,Django admin 实现search_fields精确查询实例
- 每日算法系列【LeetCode 121】买卖股票的最佳时机
- 变换型设计与事务型设计
- MySQL误删数据找回和恢复
- 如何在linux系统中快速切换目录(目录栈的使用),如何在Linux下环境下快速切换工作目录...
- 应广PFS122单片机比较器测供电电源VDD电压带临界点消抖处理
- HTB靶场 Shared
- iOS 15:如何查找丢失或失窃的 iPhone,就算它已关机也可远程定位
- 云打码案例 python
- EPICS -- pyDevice
- 【单片机】一文彻底搞懂单片机程序烧录
- (转)关于如何学好游戏3D引擎编程的一些经验
- Java的基本特性和优势
- python数据分析岗位_python拉勾数据职位分析
- 更改SQL Server数据库名、数据库文件名的方法
- 内存导致的电脑游戏中显示hdmi无信号 从而死机的情况
热门文章
- 【机器学习算法】XGBoost
- memoryerror: Unable to allocate array with shape (60000, 28, 28) and data ty
- matlab摄像头录像保存在哪里,matlab连接摄像头读取视频部分解释
- ACL 2021 | Glancing Transformer:惊鸿一瞥的并行生成模型
- 关于Transformer和BERT,在面试中有哪些细节问题?
- ACL 2020 | 基于稠密段落检索的开放域问答系统技术
- 我跑了ERNIE和BERT两个模型,结果出乎意料......
- AAAI 2019 Oral | 把Cross Entropy梯度分布拉‘平’,就能轻松超越Focal Loss
- acm第二节2020.4.2-4.4补
- ClickHouse【环境搭建 02】设置用户密码的两种方式(明文+SHA256)及新用户添加及只读模式 Cannot execute query in readonly mode 问题解决