#P9603. 数据结构(加强版)

数据结构(加强版)

题目描述

本题为「CSP 联测 2021 Day2」数据结构 的数据加强版,与原题唯一不同是 kk 的数据范围,且时限为 1200ms1200ms

维护一个正整数多重集合 SS,初始为空,支持两个操作:

  • 插入:插入一个新数 xx
  • 修改:令集合中所有数加 11

每次操作结束后,计算 SS 中所有数的 kk 次方和,kk 预先给定。

和可能很大,你只需要输出它对 109+710^9+7 的余数即可。

输入格式

第一行两个数 M,kM,k,其中 MM 表示操作次数。

接下来 MM 行,每行可能为以下两种之一:

  • 0 x,表示插入一个大小为 xx 的新元素。

  • 1 ,表示令集合 SS 里所有数加一。

输出格式

输出 MM 行,第 ii 行表示第 ii 次操作结束之后,SS 中所有数的 kk 次方和。

样例

3 2
0 1
0 1
1
1
2
8

第一次操作后,集合为 {1}\{1\}

第二次操作后,集合为 {1,1}\{1,1\}

第三次操作后,集合为 {2,2}\{2,2\}

数据范围

各测试点数据大小分阶级

对全部的测试数据,1M2×1051\le M \leq 2 \times 10^{5}1k3001\le k \leq 3001x1051\le x\leq 10^5

请注意代码常数优化,并且在提交选项中勾选 O2O2