#ATarc158f. [ARC158F] Random Radix Sort

[ARC158F] Random Radix Sort

题目描述

对于非负整数 x, kx,\ kxx10k10^k 位是指  x10k\bigl\lfloor\ \frac{x}{10^k}\bigr\rfloor 除以 1010 的余数。例如,12312310010^010110^110210^210310^3 位分别为 3, 2, 1, 03,\ 2,\ 1,\ 0

给定正整数 N, M, KN,\ M,\ K 以及非负整数序列 A=(A1, , AN)A = (A_1,\ \ldots,\ A_N)B=(B1, , BN)B = (B_1,\ \ldots,\ B_N)

我们考虑通过以下步骤对 AA 进行重排:

  • 重复 MM 次以下操作:
    • 选择一个整数 kk,满足 0kK10 \leq k \leq K-1
    • 然后,对 AA 按照 10k10^k 位进行稳定排序。也就是说,对于 d=0,1,,9d=0,1,\ldots,9,定义 A(d)A^{(d)}AA10k10^k 位等于 dd 的所有元素组成的子序列,然后将 A(0), A(1), , A(9)A^{(0)},\ A^{(1)},\ \ldots,\ A^{(9)} 按顺序连接起来,替换 AA

这样的操作共有 KMK^M 种可能。请计算,经过这些操作后,AA 恰好变为 BB 的方案数,并对 998244353998244353 取模。

输入格式

输入通过标准输入给出,格式如下:

NN MM KK A1A_1 \ldots ANA_N B1B_1 \ldots BNB_N

输出格式

输出使得 AA 变为 BB 的操作方案数,对 998244353998244353 取模。

样例 1

输入

3 2 3
74 42 54
42 54 74

输出

5

样例 2

输入

2 1 1
2 3
3 2

输出

0

样例 3

输入

5 100 4
0 12 34 56 78
0 12 34 56 78

输出

982924732

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1M1091 \leq M \leq 10^9
  • 1K181 \leq K \leq 18
  • 0Ai<10K0 \leq A_i < 10^K
  • 0Bi<10K0 \leq B_i < 10^K
  • AABB 作为多重集是相同的。也就是说,对于任意整数 xxxxAA 中出现的次数等于其在 BB 中出现的次数。

样例解释 1

11 次选择的 kk 记为 k1k_1,第 22 次选择的 kk 记为 k2k_2。例如,当 k1=0, k2=1k_1 = 0,\ k_2 = 1 时,AA 的变化如下:

  • 先对 10k1=10010^{k_1} = 10^0 位进行稳定排序,AA 变为 (42,74,54)(42,74,54)
  • 再对 10k2=10110^{k_2} = 10^1 位进行稳定排序,AA 变为 (42,54,74)(42,54,74)

所有操作及其结果如下:

  • (k1,k2)=(0,0)(k_1, k_2) = (0,0)A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(0,1)(k_1, k_2) = (0,1)A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(0,2)(k_1, k_2) = (0,2)A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(1,0)(k_1, k_2) = (1,0)A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(1,1)(k_1, k_2) = (1,1)A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(1,2)(k_1, k_2) = (1,2)A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(2,0)(k_1, k_2) = (2,0)A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(2,1)(k_1, k_2) = (2,1)A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(2,2)(k_1, k_2) = (2,2)A=(74,42,54)A = (74,42,54)

样例解释 2

不存在满足条件的操作方案。

样例解释 3

所有 41004^{100} 种操作方案都满足条件。

由 ChatGPT 4.1 翻译