方奶奶的市场之旅

时间限制: 1000 ms 内存限制: 131072 kb
总通过人数: 0 总提交人数: 0

题目描述

方奶奶 有一天去市场买菜。

市场中的 $n$ 名小商贩们排成一行,位置为 $i$ 的人面前有价格为 $1 \leq a_i \leq m$ 的蔬菜。

方奶奶 按 $i$ 递增的顺序遍历所有的蔬菜,同时选择其中一些蔬菜购买。

除第一次购买外,方奶奶 每次购买时一定会选择比上一次购买的蔬菜价格更高的蔬菜购买,并且她总能购买到总数最多的蔬菜。

作为城管,你可以让一些小商贩改变蔬菜的售价,但是必须保证修改后的售价依然为区间 $[1, m]$ 以内的整数。

但是由于有的小商贩后台足够硬,你不能勒令每个人都改变售价。

现在,你想要知道对于每个整数 $k \in [1, m]$,你有多少种修改售价的方法(完全不修改也视为一种方案)让 方奶奶 最终购买到的蔬菜数等于 $k$,答案对 $998244353$ (一个质数)取模。

输入

第一行包含一个正整数 $T$,表示有 $T$ 组测试数据。

接下来依次给出每组测试数据。对于每组测试数据:

第一行包含两个正整数 $n$ 和 $m$,分别表示市场的小商贩。

接下来输入的 $n$ 行中,第 $i$ 行有两个整数 $a_i$ 和 $b_i$,其中

  • $a_i$ 表示第 $i$ 名小商贩原本的售价。

  • $b_i$ 是 $1$ 或者 $0$,若 $b_i$ 为 $1$,则代表第 $i$ 名小商贩的售价可以被修改,否则不可以。

保证 $1 \leq n \leq 2000,$ $1 \leq m \leq 10$。

保证所有的 $a_i$ 满足 $1 \leq a_i \leq m$。

保证 $1 \leq T \leq 30$,并且不超过 $6$ 组数据不满足 $1 \leq n \leq 10, 1 \leq m \leq 5$。

输出

对于每组数据,输出 $m$ 行,第 $k$ 行包含一个整数,表示使得 方奶奶 最终购买的蔬菜数量等于 $k$ 的售价修改方案数对 $998244353$ 取模后的结果。

输入样例

1
3 3
1 1
2 0
3 1

输出样例

4
4
1

样例解释

样例中第一名和第三名小商贩的价格可以修改,因此一共有 $9$ 种不同的价格情况:

  • $1, 2, 1$,方奶奶 会购买 $2$ 个蔬菜

  • $1, 2, 2$,方奶奶 会购买 $2$ 个蔬菜

  • $1, 2, 3$,方奶奶 会购买 $3$ 个蔬菜

  • $2, 2, 1$,方奶奶 会购买 $1$ 个蔬菜

  • $2, 2, 2$,方奶奶 会购买 $1$ 个蔬菜

  • $2, 2, 3$,方奶奶 会购买 $2$ 个蔬菜

  • $3, 2, 1$,方奶奶 会购买 $1$ 个蔬菜

  • $3, 2, 2$,方奶奶 会购买 $1$ 个蔬菜

  • $3, 2, 3$,方奶奶 会购买 $2$ 个蔬菜

因此应该输出 $4, 4, 1$。

相关推荐