atcoder#ABC236H. [ABC236Ex] Distinct Multiples

[ABC236Ex] Distinct Multiples

题目描述

正整数 N, M N,\ M および正整数列 D = (D1, , DN) D\ =\ (D_1,\ \dots,\ D_N) が与えられます。

以下の条件を満たす正整数列 A = (A1, , AN) A\ =\ (A_1,\ \dots,\ A_N) の総数を 998244353 998244353 で割った余りを求めてください。

  • 1  Ai  M  (1  i  N) 1\ \leq\ A_i\ \leq\ M\ \,\ (1\ \leq\ i\ \leq\ N)
  • $ A_i\ \neq\ A_j\ \,\ (1\ \leq\ i\ \lt\ j\ \leq\ N) $
  • i  (1  i  N) i\ \,\ (1\ \leq\ i\ \leq\ N) について、Ai A_i Di D_i の倍数

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M D1 D_1 \ldots DN D_N

输出格式

答えを出力せよ。

题目大意

给定两个正整数 N,MN,M 和一个正整数序列 DD,询问满足条件的序列 AA 的个数:

  1. 1AiM(1iN)1\leq A_i\leq M(1\leq i\leq N)
  2. AiAj(1i<jN)A_i\neq A_j(1\leq i<j\leq N)
  3. DiAiD_i|A_i
  • 2N16,1M1018,1DiM2\leq N\leq 16,1\leq M\leq 10^{18},1\leq D_i\leq M
3 7
2 3 4
3
3 3
1 2 2
0
6 1000000000000000000
380214083 420492929 929717250 666796775 209977152 770361643
325683519

提示

制約

  • 2  N  16 2\ \leq\ N\ \leq\ 16
  • 1  M  1018 1\ \leq\ M\ \leq\ 10^{18}
  • 1  Di  M  (1  i  N) 1\ \leq\ D_i\ \leq\ M\ \,\ (1\ \leq\ i\ \leq\ N)
  • 入力は全て整数である。

Sample Explanation 1

条件を満たす A A (2, 3, 4), (2, 6, 4), (6, 3, 4) (2,\ 3,\ 4),\ (2,\ 6,\ 4),\ (6,\ 3,\ 4) 3 3 通りです。

Sample Explanation 2

条件を満たす A A は存在しません。

Sample Explanation 3

998244353 998244353 で割った余りを求めることに注意してください。