AT_abc349_f.[ABC349F] Subsequence LCM

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的正整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\dots,A_N) 和一个正整数 MM。请你求出 AA 的所有非空子序列(不要求连续),使得该子序列中所有元素的最小公倍数等于 MM 的子序列个数,并对 998244353998244353 取模。注意,如果两个子序列在序列上选取的位置不同,即使它们的元素相同,也视为不同的子序列。另外,当子序列只包含一个元素时,该元素本身即为最小公倍数。

输入格式

输入从标准输入中给出,格式如下:

NN MM A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出一个整数,表示满足条件的子序列个数对 998244353998244353 取模后的结果。

输入输出样例

  • 输入#1

    4 6
    2 3 4 6

    输出#1

    5
  • 输入#2

    5 349
    1 1 1 1 349

    输出#2

    16
  • 输入#3

    16 720720
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    输出#3

    2688

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤M≤10161 \leq M \leq 10^{16}
  • 1≤Ai≤10161 \leq A_i \leq 10^{16}
  • 输入均为整数

样例解释 1

AA 的子序列中,最小公倍数为 66 的有 (2,3)(2,3)、(2,3,6)(2,3,6)、(2,6)(2,6)、(3,6)(3,6)、(6)(6) 共 55 个。

样例解释 2

请注意,即使子序列的元素相同,只要选取的位置不同,也视为不同的子序列。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页