P7868 [COCI2015-2016#2] VUDU

你打开了这道题

你开始学习 OI,你写出了 O(n2)O(n^2) 做法,枚举 llrr,然后前缀和优化。

你上了小学,开始学习转化这题。你考虑对于 1in1 \leq i \leq n aiaipa_i \leftarrow a_i -p。然后题目即求区间平均数大于等于 00 的序列。

你上了中学,继续思考这题。你发现 aia_i 转化后可以继续前缀和优化。设 sumi=j=1iajsum_i = \sum \limits_{j=1}^i a_j,即求有多少区间 [l,r][l, r] 满足 sumrsuml1rl+10\dfrac{sum_r - sum_{l-1}}{r-l+1}\geq0

你上了大学,你发现了一个性质,即若 sumrsuml10sum_r - sum_{l-1} \geq 0,那么 sumrsuml1rl+10\dfrac{sum_r - sum_{l-1}}{r-l+1}\geq0,由于 rl+1>0r-l+1>0。问题转化为求有多少区间 [l,r][l, r] 满足 sumrsuml10sum_r - sum_{l-1}\geq0

你读了博士,继续考虑这题。你发现 sumrsuml10sum_r - sum_{l-1} \geq 0 等同于 sumrsuml1sum_r \geq sum_{l-1}

然后这题就结束了,线段树或树状数组等维护逆序对即可。

posted @ 2022-08-02 19:47  HappyBobb  阅读(10)  评论(0)    收藏  举报  来源