C++编程《第18课 搜索骗分训练》.pptxVIP

  • 1
  • 0
  • 约8.08千字
  • 约 29页
  • 2026-03-12 发布于广西
  • 举报

第18课搜索骗分训练

3、训练编写比较复杂的搜索程序,积累经验学习目标1、把问题转化为搜索模型2、剪枝出奇迹

课堂练习

(一)神奇的四次方数【问题描述】将一个整数m分解为n个四次方数的和的形式,要求n最小。例如,m=706,706=5^4+3^4,则n=2。【输入】一行,一个整数m。【输出】一行,一个整数n。【样例输入1】706【样例输出1】2解释:m=706,706=5^4+3^4,则n=2。数据范围:对于30%的数据,m=5000;对于100%的数据,m=100,000

(一)神奇的四次方数【提示1】这个问题可以用这个模型来描述:从1到4√m这若干个四次方数重量的物品中,选择若干个出来装在容量为m的背包中,每个物品的价值是1,当正好把背包装满时,得到的最小价值就是所求。这个问题好像类似于完全背包,但完全背包是求价值的最大值,数学模型是:f[v]=max{f[v],f[v-w[i]]+c[i]};v表示容量为v,f[v]表示容量为v的背包能装的最大价值。计算时,计算到第i件物品时,只考虑这样的转移:如果包含第i件物品,则由v-w[i]状态转移而来,否则维持v状态的值。计算时,从v小的状态开始枚举物品计算,实现递推。针对于本问题,如果套用完全背包有两个方面的问题需要考虑:(1)完全背包不一定要把背包装满的,而本问题一定要“

文档评论(0)

1亿VIP精品文档

相关文档