https://www.luogu.com.cn/problem/P9197
这题我为什么不会啊??
套路地拆绝对值,从大到小往序列里面插数,\(dp_{i,j,k,0/1,0/1}\) 表示前 \(i\) 个数形成 \(j\) 个连续段,这 \(i\) 个数的贡献总和为 \(k\),是否填了开头末尾。但是有一个问题,\(k\) 这一维会达到 \(O(n^2)\) 级别,于是炸了。
注意到 \(m\) 只有 \(1000\),所以我们希望找到一种更高妙的刻画贡献的方式,使得在插数的过程中 \(k\) 这一维不减。设 \(s_i\) 表示插入前 \(i\) 个数之后,所有连续段的总段头数量。那么 \(ans=\sum s_i(a_i-a_{i+1})\)。这个显然是不减的。