摘要: 题目大意 定义一个从小到大的数列的中位数为第 $ \frac{n}{2}+1 $ 项。求一个序列的所有连续子序列的中位数的中位数。 $ (n \leqslant 100000)$ 问题分析 由于$n$的范围较大,所以不可能把序列构造出来。我们不妨换个角度分析。我们设最后的序列总共有$N=\frac{ 阅读全文
posted @ 2018-10-07 20:44 chy_2003 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 解题思路 第一步显然是将原数组排序嘛……然后分成一些不相交的子集,这样显然最小。重点是怎么分。 首先,我们写出一个最暴力的$DP$: 我们令$F[ i ][ j ] $ 为到第$i$位,分成$j$组的代价,我们可以写出如下 $ DP$ C++ for( LL i = 1; i k$且从$l$转移优于 阅读全文
posted @ 2018-10-07 20:23 chy_2003 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目大意 给定一个长度为$n(n \leqslant 500000)$的数列,将其分割为连续的若干份,使得 $ \sum ((\sum_{i=j}^kC_i) +M) $ 最小。其中$C_i$为序列中的项的值,$M$为常数。$ j,k $ 表示在原序列中连续的某一段的起始位置和结束位置。 解题思路 阅读全文
posted @ 2018-10-07 13:18 chy_2003 阅读(138) 评论(0) 推荐(0) 编辑