CF1239E Turtle
Description
https://www.luogu.com.cn/problem/CF1239E
总结
为什么一点思路都没有呢?
要找性质。
从哪里开始找呢?
比如确定数的集合能否确定数的排列顺序。
还是需要多做题总结。
Solution
令第一行的前缀和为 $p_i$,第二行的后缀和为 $s_i$,则种排列所有的贡献为:$\max(p_i+s_i)$。
假设我们已经直到第一行和第二行的选的数的集合,那么一定是第一行从小到大排序,第二行从大到小排序。贪心显然。
再考虑转移点,也就是从哪里开始第一行转到第二行是可能对最大值产生影响的。
考虑每次移动转移点的增量 $w_i=a_i-b_{i-1}$,那么答案可以写为:$\max(a_1+\sum b+\sum_{j=2}^i w_j)$。
再观察到 $a$ 是不降的,$b$ 是不升的,所以 $w$ 一定不降。$w$ 一开始可能为负,所以转移点一定再 $i=1$ 或者 $i=n$。
题目也就转化为了选择把 $2n$ 个数分为两个大小为 $n$ 的集合,最小化 $\max(a_1+\sum b,b_n+\sum a)$。而 $a_1,b_n$ 我们可以先不管考虑枚举,也可以猜测到因为这两个一定要选,肯定是把最小的两个数放到这两个数上。
题目又变成了选择 $2n-2$ 个数分别两个大小为 $n-1$ 的集合,最小化 $\max(\sum a,\sum b)$。这里就可以直接 dp 了。而由于 $s=\sum a+\sum b$ 是确定的,只需要找到一个集合可以大于 $\lceil \dfrac{s}{2}\rceil$ 的第一个数。可以直接 $O(n^2\sum a)$ 暴力背包。
发现取值都是 $01$,考虑 bitset
优化,复杂度为 $O(\dfrac{n^2\sum a}{w})$。
1 |
|