【JZOJ 5428】 查询

来源:互联网 发布:福禄克网络测试仪使用 编辑:程序博客网 时间:2024/06/01 23:28

Description

给出一个长度为n的序列a[]
给出q组询问,每组询问形如x,y,求a序列的所有区间中,数字x的出现次数与数字y的出现次数相同的区间有多少个
对于100%的数据,1<=n<=8000,1<=q<=500000,1<=x,y,a[i]<=10^9

Analysis

如果现在查询一组x,y,你会O(n)做吗?开个桶乱搞就好了
考虑优化,设x总共出现k1次,y总共出现k2次,你会O(k1+k2)做吗?类似上面那样,两个指针移动一下就好了
那么现在枚举任意x,y,预处理答案,显然是O(n^2)的

原创粉丝点击