[USACO24OPEN] Smaller Averages G 题解

考场上写出抽象 \(O(n^5)\) 拿下了高达 45pts。

好吧这个根据题意可以拿下 \(O(n^4)\) 的分数。

然后发现你只能继续优化。然后你会感叹这个东西也太抽象了吧,根本优化不了一点。

首先这个 \(n\) 非常的小,导致我们甚至可以把每一个区间的平均数算出来当做一个权值。

好吧,到这里还是根本没思路,那可以分析一下这个时间复杂度,既然是 \(n=500\) ,我们仅能使用 \(O(n^3)\) 的方案。

优化一维说明我们大概是用前缀和,双指针,单调队列这些优化了。

但是发现单调队列的话这个转移方程太朴素了,根本不行。

那我们就可以用前缀和和双指针。

很明显不能直接双指针和前缀和,需要一定转化。

知周所众,单调性是一个好东西,但是很明显根本没有。

那怎么办,那就自己动手,手搓单调性 对每一个区间的平均值排序是否可行?

那将所有的区间排序肯定是不行的,我们应该是固定一维对另一维的区间进行排序。

这样我们就构造了一个有序的序列了,就可以使用前缀和进行优化了,代码很简单,就不放了。

posted @ 2025-04-29 22:06  hnczy  阅读(21)  评论(0)    收藏  举报