摘要: 首先注意题意,是统计>=k的个数。 那么首先考虑一下暴力的思路,用cnt[i]来表示次数>=i的个数。 考虑删去一个点,那么cnt[c[i]]--。注意的是cnt[c[i]-1]不需要++,一开始误区就在这了,因为cnt[c[i]-1]还是满足>=c[i]-1的。 那么加入一个点,cnt[c[i]+ 阅读全文
posted @ 2020-08-29 18:33 levill 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 提供两种解法。 第一种:直接对询问离线,然后莫队分块。 我们用一个数组vis来统计每个数出现的次数,然后维护区间内出现次数超过2的数量即可。 一开始加了个vis[i] = max(vis[i],0)防负数操作还wa了,这样其实有点违背统计思想了。 // Author: levil #include< 阅读全文
posted @ 2020-08-29 12:07 levill 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 对于第一个式子。 分析内层循环可以发现,可以优化为i*n的前缀和。那么可以O(n)求出。 那么即为$\sum_{i = 1}^{n} i *pre[n]$ 再仔细观察我们可以提出pre[n]。那么就变成了pre[n]*pre[n]。至此就可以O(1)求出了。 pre[n]不需要预处理,因为这里空间卡 阅读全文
posted @ 2020-08-29 08:09 levill 阅读(138) 评论(0) 推荐(0) 编辑