[分析] 设d(i,j)为切割小木棍i-j的最优费用,则d(i,j)=min{d(i,k)+d(k,j)|i<k<j}+a[j]-a[i],其 中最后一项a[j]-a[i]代表第一刀的费用.切完之后,小木棍变成i-k和k-j两部分,状态转 移方程由此可得.把切割点编号为1-n,左边界编号为0,右边界编号为n+1,则答案 为d(0,n+1). 状态有O(n2)个,每个状态的决策有O(n)个,时间复杂度为O(n3). [实现] 递推版本要枚举区间长,我个人认为比较僵硬,于是我写的是记忆化搜索. 附…