- 题目:为下列问题设计一个动态规划算法。已知一个小木棍的销售价格pi和长度i相关,i=1.,2,3,..........n,如何把长度为n的木棍切割为若干根长度为整数的小木棍,使得能获得的销售额最大?
假设i和pi的关系如下
i(长度) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
pi(价格) | 1 | 5 | 8 | 9 | 10 | 17 | 17 | 20 | 24 | 30 |
i长度的木棍能获得的最大收益 要么是它本身的销售价格 要么是能组成它长度的最大收益之和
F[i]=max(F[i],F[j]+F[i-j])
int[] p={0,1,5,8,9,10,17,17,20,24,30};
int[] F={0,1,5,8,9,10,17,17,20,24,30}; //用F数组表示最大价值 ,暂时用原来长度价值表示,如果没有也可以用0表示
for(int i=2;i<=10;i++)
for(int j=1;j<=(i/2+1);j++)