用动态规划法设计算法有一根长n厘米的金属棒,现在要切割成几段零售.i 厘米(i = 1,2,...,n)长的金属棒零售价为pi.n和切割后每段的长度都为整数.使用动态规划法设计一个算法,输入金属棒长

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 09:59:24
用动态规划法设计算法有一根长n厘米的金属棒,现在要切割成几段零售.i厘米(i=1,2,...,n)长的金属棒零售价为pi.n和切割后每段的长度都为整数.使用动态规划法设计一个算法,输入金属棒长用动态规

用动态规划法设计算法有一根长n厘米的金属棒,现在要切割成几段零售.i 厘米(i = 1,2,...,n)长的金属棒零售价为pi.n和切割后每段的长度都为整数.使用动态规划法设计一个算法,输入金属棒长
用动态规划法设计算法
有一根长n厘米的金属棒,现在要切割成几段零售.i 厘米(i = 1,2,...,n)长的金属棒零售价为pi.n和切割后每段的长度都为整数.
使用动态规划法设计一个算法,输入金属棒长度n和零售价表p1,...,pn,计算使零售价格的和最大的切割方法.
不用给出代码,有想法就行.12点之前给答案再送50分.

价格表例子如图.
另外上面说的12点指2月3日中午12点.

用动态规划法设计算法有一根长n厘米的金属棒,现在要切割成几段零售.i 厘米(i = 1,2,...,n)长的金属棒零售价为pi.n和切割后每段的长度都为整数.使用动态规划法设计一个算法,输入金属棒长
这个题目可以看作是个完全背包问题的变形.
转化成一个体积为n的背包,向里面放东西,使得所有东西体积之和恰好为n(正统的背包问题是不大于n),而且总的价值最大.其中每件编号为i的东西体积为c[i](长度),价格为w[i](零售价).
这个问题非常类似于01背包问题,所不同的是每种物品有无限件.也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种.如果仍然按照解01背包时的思路,令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大权值.仍然可以按照每种物品不同的策略写出状态转移方程,像这样:f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i] (其中0