#CF601E. C139【线段树分治+01背包】A Museum Robbery

C139【线段树分治+01背包】A Museum Robbery

CF601E A Museum Robbery

题目描述

初始有 nn 件展品(标号 11nn),其中第 ii 件展品有大小为 viv_i价值wiw_i质量

接下来会发生 qq 个事件,每个事件为以下三种类型之一:

  • 添加一个价值为 vv,质量为 ww 的展品。记上一次该操作添加展品的编号为 tt(如果这是第一次,则默认为 t=nt = n),则本次添加的展品的编号为 t+1t+1
  • 删除编号为 xx 的展品;
  • 进行一次询问,其中询问方式如下。

对于最开始给定的正整数 kk,请你输出:

$$\sum \limits_{m = 1}^k s(m) \times p^{m-1} \bmod q$$

(其中 p=107+19,q=109+7p = 10^7 + 19, q = 10^9 + 7

s(m)s(m) 的定义如下:

设当前展品编号集合为 DDSSDD 的一个子集,且满足 iSwim\sum \limits_{i \in S} w_i \leq m,则 s(m)s(m)iSvi\sum \limits_{i \in S} v_i 的最大值。

输入格式

第一行,两个正整数 n,kn, k

接下来 nn 行中,第 ii 行包含两个正整数 vi,wiv_i, w_i,表示第 ii 个展品的价值和质量。

接下来一行,一个正整数 qq

接下来 qq 行中,每一行可能为如下事件之一:

  • 1 v w,表示事件 11,即添加一个价值为 vv,质量为 ww 的展品。编号如题意;
  • 2 x,表示事件 22,即删除展品 xx。保证该展品此前未被删除;
  • 3,表示事件 33,一次询问。

保证最多有 1000010000 次事件 11,至少有一次事件 33

输出格式

对于每一次事件 33,输出一行一个正整数,表示答案。输出的内容如题意。

输入输出样例 #1

输入 #1

3 10
30 4
60 6
5 1
9
3
1 42 5
1 20 3
3
2 2
2 4
3
1 40 6
3

输出 #1

556674384
168191145
947033915
181541912

输入输出样例 #2

输入 #2

3 1000
100 42
100 47
400 15
4
2 2
2 1
2 3
3

输出 #2

0

说明/提示

1n5×1031 \leq n \leq 5 \times 10^31q3×1041 \leq q \leq 3 \times 10^41k,wi,w1031 \leq k, w_i, w \leq 10^31vi,v1061 \leq v_i, v \leq 10^6