#P14873. [OOI2023 资格赛]Соберите станок组装机床

    ID: 14089 传统题 3000ms 512MiB 尝试: 7 已通过: 1 难度: 9 上传者: 标签>CF2800组合数学多项式FFT排序动态规划计数DP

[OOI2023 资格赛]Соберите станок组装机床

题目描述

小男孩 Vasya 是一名刚入职的初级程序员,他刚被莫斯科最著名的工厂录用。入职后,他立刻被交给了一项非常重要的任务:组装一台机床。

机床由 nn 个第一类零件和 nn 个第二类零件组成。两类零件都分别从 11nn 编号。编号为 ii 的第一类零件大小为 aia_i,编号为 ii 的第二类零件大小为 bib_i

为了组装机床,必须把每个第一类零件连接到某个第二类零件,并且不同的第一类零件必须连接到不同的第二类零件。也就是说,你需要建立一个从第一类零件到第二类零件的一一匹配。

机床的质量定义为:在所有连接的零件对中,满足第一类零件大小严格大于第二类零件大小的对数。

Vasya 给你一个数 mm,并要求你对每个 kkmknm\le k\le n),计算质量恰好为 kk 的组装方法数,结果对 998244353998244353 取模。

如果存在一对零件在一种组装方法中被连接,而在另一种组装方法中没有被连接,那么这两种组装方法视为不同。

输入格式

第一行包含两个整数 nnmm1n1000001 \le n \le 1000000mn0 \le m \le n),分别表示每一类零件的数量,以及 Vasya 给出的数。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai1091 \le a_i \le 10^9),表示第一类零件的大小。

第三行包含 nn 个整数 b1,b2,,bnb_1,b_2,\ldots,b_n1bi1091 \le b_i \le 10^9),表示第二类零件的大小。

输出格式

输出 nm+1n-m+1 个整数。

ii 个整数应等于质量为 m+i1m+i-1 的组装方法数,对 998244353998244353 取模。

样例

样例 1

5 0
2 3 4 5 6
1 2 3 4 5
0 1 26 66 26 1

样例 2

4 2
1 2 3 4
4 3 2 1
11 1 0

样例 3

2 0
2 2
1 1
0 0 2

评分方式

测试点分为 8 组。只有通过某一组的全部测试,以及它所依赖的某些前置组时,才能获得该组分数。注意,部分组不要求通过样例测试组。

组别 分数 nn 的附加限制 mm 的附加限制 aia_i 的附加限制 依赖组 说明
0 样例测试
1 8 n9n\le 9 0
2 11 n17n\le 17 0,1
3 14 ai2a_i\le 2
4 17 m=nm=n
5 19 m=n1m=n-1
6 16 n300n\le 300 0,1,2
7 15 n5000n\le 5000 0,1,2,6
8 1 0–7