#DMY66F. 集训

    ID: 18566 传统题 6000ms 512MiB 尝试: 2 已通过: 2 难度: 10 上传者: 标签>数据结构线段树组合数学范德蒙德恒等式

集训

时空限制

6S/512M

题目描述

jiangly 的眼中,算法竞赛分为 nn 个专题,每一个专题 jiangly 都有一些题目,一开始第 ii 个专题有 aia_i 个题目。

现在 jiangly 要举办若干次集训,每一次集训需要 jiangly 从某一个专题中挑选出 kk 个题。

由于学生的实力有限,所以每一次集训都会指定一个专题区间 [li,ri][l_i,r_i]jiangly 只能选择第 lil_i 个到第 rir_i 个专题之间的题目。

但是 jiangly 在集训中间,也会时不时增加某些专题的题目数量。jiangly 想知道每一次集训的方案数。

也就是说,对于一次询问 2 l r k,你需要输出:

i=lr(aik)\sum_{i=l}^{r} \binom{a_i}{k}

由于答案可能很大,所以需要输出答案对 998244353998244353 取模后的结果。

输入格式

第一行包含两个整数 nnqq,表示专题的数量和操作的个数。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,表示一开始每一个专题的题目数量。

接下来 qq 行表示 qq 次操作,操作有以下两种形式:

  • 1 l r y:表示第 ll 个专题到第 rr 个专题的题目数量各增加 yy
  • 2 l r k:表示进行一次使用第 ll 到第 rr 个专题、需要找 kk 个题的集训,需要你回答方案数。

输出格式

对于每一个 2 号操作,输出一行,表示方案数对 998244353998244353 取模后的结果。

数据规模

注意:只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 n,qn,q \le kk \le 其他限制
11 1515 20002000 88
22 3030 1.5×1051.5 \times 10^5 11 号操作满足 l=rl=r
33 11
44 2525 88

对于 100%100\% 的数据,满足 1n,q1.5×1051 \le n,q \le 1.5 \times 10^51k81 \le k \le 8,操作 11y1091 \le y \le 10^91ai1091 \le a_i \le 10^91lrn1 \le l \le r \le n

3 5
2 1 2
2 1 2 3
1 2 2 2
2 1 3 1
1 1 1 3
2 1 3 3
0
7
11
3 2
2 1 2
1 1 2 3
2 1 2 3
14