早教吧作业答案频道 -->数学-->
算法,集合取数计算正整数集合N,最多有数字1000个,给定一个正整数K从N中取任意个数字相加,和为SUM,SUM不大于K求SUM可以达到的最大值求问算法思想···
题目详情
算法,集合取数计算
正整数集合N,最多有数字1000个,给定一个正整数K
从N中取任意个数字相加,和为SUM,SUM不大于K
求SUM可以达到的最大值
求问算法思想···
正整数集合N,最多有数字1000个,给定一个正整数K
从N中取任意个数字相加,和为SUM,SUM不大于K
求SUM可以达到的最大值
求问算法思想···
▼优质解答
答案和解析
这是一个比较典型的01背包问题,可以用动态规划的方法来解决.
首先,对问题进行一点小小的变形,即将K看做背包容量v,而每一个集合中的数字,看作一件物品,它的重量c和价值w均为其数值本身.
然后,用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值.则其状态转移方程便是:
f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
至此,即可编写程序依照上面的状态转移方程对f[N][K]进行求解了.
如果要对求解的过程进行优化,可以参考01背包问题的具体讲解,网上有很多,这里就不多介绍了.
首先,对问题进行一点小小的变形,即将K看做背包容量v,而每一个集合中的数字,看作一件物品,它的重量c和价值w均为其数值本身.
然后,用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值.则其状态转移方程便是:
f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
至此,即可编写程序依照上面的状态转移方程对f[N][K]进行求解了.
如果要对求解的过程进行优化,可以参考01背包问题的具体讲解,网上有很多,这里就不多介绍了.
看了 算法,集合取数计算正整数集合...的网友还看了以下:
一质点自原点开始在X轴上运动,初速度to>0,加速度a>0,当a值不断减小直至为0时指点的[ ]速 2020-04-05 …
一质点自原点开始在x轴上运动,初速度v>0,加速度a>0,当a值减小时(a仍大于0)速度和位移都只 2020-04-05 …
质点在x轴上运动,初速度v>0,加速度a>0,当a值减小时(a仍大于0)则质点的速度逐渐增大,当速 2020-05-15 …
一质量为5kg的滑块在F=30N且斜向右上与水平方向成37°的拉力作用下,由静止开始做匀加速运动, 2020-06-20 …
向20ML氢离子浓度为0.001MOL/L乙酸逐滴加入0.2MOL/L氨水当加入10ML时导电性最 2020-06-27 …
李明家计划将房子的窗户建造成如图所示的样子,它的上方是一个半圆,下面是一个正方形,且正方形的边长是 2020-07-31 …
大学概率题(运用中心极限定理)计算器在进行加法时,将每个加数舍入最靠近他的整数,所有舍入误差独立且 2020-08-02 …
皇家马德里VS加拉塔沙雷0.95两球/两球半0.90马拉加VS多特蒙德0.90受让平手/半球1.0皇 2020-11-13 …
学过概率论的回答.考虑条件概率.加工某一零件共需要经过三道工序,设第一,二,三道工序的次品率分别是0 2020-12-05 …
有理数加减法试题10袋大米,以每袋30千克为标准,超过的千克数为正数,不足的为负数,承重的记录如下: 2020-12-09 …