题意简述
给定一个序列,长度$1e5$,每个数的绝对值小于$1e9$,还有一个$-10<=k<=10$,请你求出有多少个区间的和是$k^a$的形式,其中$a$为自然数。
思路框架
开个平衡树记录一下即珂。
具体思路
$k=\pm 1$的情况特判。
首先,区间和$[l,r]$珂以拆成$sum[r]-sum[l-1]$,其中$sum$是前缀和数组。然后对于每个$sum[l-1]$,我们用一个平衡树($map$)记录它出现了多少次。对于每个$r$,我们枚举一个$k^a$,(这样的枚举是$O(log)$的),然后$sum[r]-k^a$就是对应情况下$sum[l-1]$的值。看它有多少个即珂。
根据加法原理把答案加起来。不用取膜,所以要记得开$long long$。
代码
1 |
|