[USACO24OPEN] Smaller Averages G 题解
考场上写出抽象 \(O(n^5)\) 拿下了高达 45pts。
好吧这个根据题意可以拿下 \(O(n^4)\) 的分数。
然后发现你只能继续优化。然后你会感叹这个东西也太抽象了吧,根本优化不了一点。
首先这个 \(n\) 非常的小,导致我们甚至可以把每一个区间的平均数算出来当做一个权值。
好吧,到这里还是根本没思路,那可以分析一下这个时间复杂度,既然是 \(n=500\) ,我们仅能使用 \(O(n^3)\) 的方案。
优化一维说明我们大概是用前缀和,双指针,单调队列这些优化了。
但是发现单调队列的话这个转移方程太朴素了,根本不行。
那我们就可以用前缀和和双指针。
很明显不能直接双指针和前缀和,需要一定转化。
知周所众,单调性是一个好东西,但是很明显根本没有。
那怎么办,那就自己动手,手搓单调性 对每一个区间的平均值排序是否可行?
那将所有的区间排序肯定是不行的,我们应该是固定一维对另一维的区间进行排序。
这样我们就构造了一个有序的序列了,就可以使用前缀和进行优化了,代码很简单,就不放了。

浙公网安备 33010602011771号