Luogu5072 [Ynoi2015] 盼君勿忘

题意:给出序列 ,每次查询区间 的所有子序列分别去重后的和

这里的 每次询问单独给定,不保证是质数。

允许离线,,时限


分别考虑每个数的贡献。若在一个长度为 的区间中数 出现了 次,则贡献为

由于每次的 都不同,势必要单独计算每个

对于每个询问,首先用光速幂预处理,即可 求解

考虑根号分治。

为出现 次的数的总和,对于出现次数 的数,计算

对于出现次数 的数,只有 个,暴力维护其出现次数。

使用莫队即可维护上述信息,复杂度 。( 同阶)

代码很好写。