随笔分类 - DP_斜率优化
摘要:解题思路 首先肯定是考虑如何快速求出一段铁路的价值。 $$ \sum_{i=1}^k \sum_{j=1, j\neq i}^kA[i]A[j]=(\sum_{i=1}^kA[i])^2 \sum_{i=1}^kA[i]^2 $$ 那么我们要维护如下两个东西,就可以在$O(1)$内求出一段铁路的价值
阅读全文
摘要:问题分析 首先,如果一个人的$w$和$h$均小于另一个人,那么这个人显然可以被省略。如果我们将剩下的人按$w[i]$递增排序,那么$h[i]$就是递减。 之后我们考虑DP。 我们设$f[i][j]$为到第$i$个人,打了$j$个洞的花费。于是我们可以得到如下DP过程: C++ for( LL i =
阅读全文
摘要:解题思路 第一步显然是将原数组排序嘛……然后分成一些不相交的子集,这样显然最小。重点是怎么分。 首先,我们写出一个最暴力的$DP$: 我们令$F[ i ][ j ] $ 为到第$i$位,分成$j$组的代价,我们可以写出如下 $ DP$ C++ for( LL i = 1; i k$且从$l$转移优于
阅读全文
摘要:题目大意 给定一个长度为$n(n \leqslant 500000)$的数列,将其分割为连续的若干份,使得 $ \sum ((\sum_{i=j}^kC_i) +M) $ 最小。其中$C_i$为序列中的项的值,$M$为常数。$ j,k $ 表示在原序列中连续的某一段的起始位置和结束位置。 解题思路
阅读全文

浙公网安备 33010602011771号