题意:有一根长度为L(L<1000)的棍子,还有n(n < 50)个切割点的位置(按照从小到大排列)。你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小。每次切割的费用等于被切割的木棍长度。
分析:
1、solve(i, j)为切割小木棍i~j的最优费用。
2、设k(i
k是切割小木棍i~j费用最优的切割点,a[j] - a[i] 为小木棍i ~ j 的长度,即切割小木棍i~j的费用。
3、将小木棍的n个切割点标记为1~n,左端点为0,右端点为n + 1,则答案为solve(0, n + 1)。
4、注意L和n个切割点的位置都是positive number,所以可能是浮点数。
#pragma comment(linker, "/STACK:102400000, 102400000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include