#ABC321F. 子集和为 K 的个数

子集和为 K 的个数

子集和为 K 的个数

题目描述

我们有一个盒子,初始为空。

按照输入中给出的顺序,总共执行 QQ 次以下两种类型的操作。

类型 1:+ x —— 向盒子中放入一个写有整数 xx 的球。

类型 2:- x —— 从盒子中取走一个写有整数 xx 的球。保证在执行该操作之前,盒子中确实存在一个写有整数 xx 的球。

对于每次操作后的盒子,解决以下问题:

从盒子中取出若干个球,求使球上写有的整数之和恰好为 KK 的取法数,对 998244353998244353 取模。

盒子中的所有球都是可区分的(互不相同)。

输入格式

输入按以下格式从标准输入给出,其中 Queryi\rm{Query}_i 表示第 ii 次操作:

QQ KK
Query1\rm{Query}_1
Query2\rm{Query}_2
\vdots
QueryQ\rm{Query}_Q

输出格式

输出 QQ 行。

ii 行应包含前 ii 次操作完成后的答案。

样例

15 10
+ 5
+ 2
+ 3
- 2
+ 5
+ 10
- 3
+ 1
+ 3
+ 3
- 5
+ 1
+ 7
+ 4
- 3
0
0
1
0
1
2
2
2
2
2
1
3
5
8
5

这个输入包含 1515 次操作。

最后一次操作后,盒子中装有 (5,10,1,3,1,7,4)(5,10,1,3,1,7,4) 这些球。

使和为 1010 的取球方式共有五种:

5+1+3+15+1+3+1(第 1、3、4、5 个球)

5+1+45+1+4(第 1、3、7 个球)

5+1+45+1+4(第 1、5、7 个球)

1010(第 2 个球)

3+73+7(第 4、6 个球)

数据范围

  • 输入中的所有值均为整数。
  • 1Q50001 \le Q \le 5000
  • 1K50001 \le K \le 5000
  • 对于每个类型 1 操作,1x50001 \le x \le 5000
  • 所有操作均满足题目描述中的条件。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
3072
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签