题目:
给定一个长度为 n 的正整数序列 {ai},求出有多少个连续子序列的平均值不小于 k。
1≤n≤105,1≤k,ai≤104。
题解:
原式即为
ans=∑1≤l≤r≤n[r∑i=lai≥k×(r−l+1)]
考虑将每个 ai 减去 k,那么原式变为
ans=∑1≤l≤r≤n[r∑i=l(ai−k)≥0]
也就是也就是区间和 ≥0 的区间数量。
考虑求前缀和 si=si−1+ai,那么对于一个区间 [l,r] 就等价于 sj−si。
考虑到 ans=∑1≤i<j≤n[sj−si],那么这是一个显然的二维偏序。(两维分别是 i<j;si<sj)
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15814795.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步