【CodeM初赛A 5】数列互质 题解

来源:互联网 发布:nba总决赛个人数据统计 编辑:程序博客网 时间:2024/06/04 19:29

题目大意

      给出一个长度为 n 的序列 a[1..n],有 m 个询问,每次询问给出 l, r, k,问 a[l]~a[r] 中,有多少数的出现次数与 k 互质。
      n, m<=5e4, 1<=a, k<=n
      时限 6s


题解

      区间问题可以考虑莫队,可以维护一个桶 t[i] 表示有多少数的出现次数是 i。

      但是统计答案不方便,要把整个桶扫一次。

      于是设个阈值 k=sqrt(n)。如果某个数在全局的出现次数 >k,就提取出来单独对每个询问做贡献,剩下的数就做莫队。

代码

//被我删了