ccf#WC2024A. 代码堵塞(codejam)

代码堵塞(codejam)

题目描述

\beth 为了纪念停办的 codejam,准备了一场“代码堵塞纪念赛”。小 \beth 的朋友小 \mho 也来围观,于是小 \beth 想预测小 \mho 的成绩。

比赛共 TT 秒,有 nn 道题。第 i(1in)i(1 \le i \le n) 题分数为 aia_i,小 \beth 预测小 \mho 需要 tit_i 秒完成。

题目有两种类型:结果可见和结果不可见。结果不可见的题在比赛结束后才能知道评测结果,而结果可见的题在提交后立即得到评测结果。小 \beth 还没确定每道题的类型。

\mho 由于从不写对拍,所以会先按编号从小到大完成所有结果可见的题,再按编号从小到大完成所有结果不可见的题。小 \mho 会花 tit_i 秒完成第 ii 题,当小 \mho 花费在第 ii 题和在第 ii 题之前完成的所有题的时间总和 不超过 TT,就会在第 ii产生提交

由于小 \mho 提交即 AC,所以小 \beth 想知道对于所有 2n2^n 种确定 nn 道题类型的方案,小 \mho 所能得到的分数总和的和。由于答案很大,你需要将答案对 998244353998244353 取模。

输入格式

输入的第一行包含三个整数 c,n,Tc, n, T,表示测试点编号,题数和比赛时间。样例中的 cc 表示其满足的限制条件与第 cc 个测试点一致。

输入的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots , a_n,分别表示每道题的分数。

输入的第三行包含 nn 个整数 t1,t2,,tnt_1, t_2, \cdots , t_n,分别表示小 \mho 做每道题的时间。

输出格式

输出一行包含一个整数,表示对于所有确定 nn 道题类型的方案,小 \mho 所能得到的分数总和的和,对 998244353998244353 取模。

1 3 3
2 3 4
1 2 2
40

样例 1 解释

我们用长度为 330101 序列表示题目类型,11 表示结果可见,00 表示结果不可见。

  • (0,0,0)(1,0,0)(1,1,0)(1,1,1)(0, 0, 0)(1, 0, 0)(1, 1, 0)(1, 1, 1) 四种情况:小 \mho 按照编号顺序做题,前两题产生提交,分数和为 55
  • (0,1,0)(0, 1, 0):小 \mho 按照 213213 的顺序做题,前两题产生提交,分数和为 55
  • (0,0,1)(0, 0, 1):小 \mho 按照 312312 的顺序做题,第一题和第三题产生提交,分数和为 66
  • (1,0,1)(1, 0, 1):小 \mho 按照 132132 的顺序做题,第一题和第三题产生提交,分数和为 66
  • (0,1,1)(0, 1, 1):小 \mho 按照 231231 的顺序做题,只有第二题产生提交,分数和为 33

因此答案为 (5×4+5+6+6+3)mod998244353=40(5 \times 4 + 5 + 6 + 6 + 3) \bmod 998244353 = 40

数据范围

对于所有测试数据:

  • 1n2001\le n\le 200
  • 1T3×1051\le T\le 3\times 10^5
  • 1in,1ai3×105\forall 1\le i\le n , 1\le a_i\le 3\times 10^5
  • 1in,1tiT\forall 1\le i\le n, 1\le t_i\le T
测试点编号 nn\le TT\le 特殊性质 A 特殊性质 B
141\sim 4 1515 10210^2
575\sim 7 200200 3×1053\times 10^5
8,98,9
101310\sim 13
141614\sim 16 5050 10310^3
17,1817,18 10210^2 10410^4
19,2019,20 200200 3×1053\times 10^5
  • 特殊性质 A:1in,ai=1\forall 1 \le i \le n, a_i = 1
  • 特殊性质 B:1in,ti=1\forall 1 \le i \le n, t_i = 1

后记

“你们这比赛怎么所有题都结果不可见啊?”