hihocoder 1636 2017 ICPC beijing J
发表于
|
分类于
ACM
题解
现在一次必须合并 k 堆k∈[L,R],也就是说合并的堆数不小于L,不大于R。
每次合并的耗费。依然是石子总重。
那么显然合并前。我们需要知道。有多少堆合并了。
对于堆数不在[L,R]的,不能合并。
令:$dp[k][l][r]$表示
区间$[l,r]$合并成k段的耗费。
$w[l,r]$表示,区间$[l,r]$石子总重。
所以:
$$dp[k][l][r]=\min_{t=l+k-2}^{r-1}(dp[k-1][l][t]+dp[1][t+1][r])$$
特别的当:
$$dp[1][l][r]=\min_{k=L}^R(dp[k][l][r]+w[l , r])$$
代码
1 | #include <cstdio> |