DP经典问题
钢条切割
问题:假设我们知道长度为l的钢条价格为pi(i=1,2,3,……),钢条长度为整数,给出价格表(任意长度的价格都有)。
长度i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
价格pi | 1 | 5 | 8 | 9 | 10 | 17 | 17 | 20 | 24 | 30 |
给我们一段长度为n的钢条,怎样切割使得收益rn最大?求最大收益。
解法1
假设长度为n的钢条最大收益值:
r n = m a x ( p n , r 1 + r n − 1 , r 2 + r n − 2 , r 3 + r n − 3 , . . . , r n − 1 + r n ) r_n = max(p_n, r_1+r_{n-1}, r_2+r_{n-2}, r_3+r_{n-3},..., r_{n-1}+r_n) rn=max(p