CF1992F.Valuable Cards

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

在他最喜欢的咖啡馆,Kmes 再次想要尝试“毛皮下的鲱鱼”。以前,这对他来说并不难,但最近咖啡馆引入了一项新的购买政策。

现在,为了购买,Kmes 需要解决如下问题:他面前摆放着 nn 张卡片,每张卡片上标有不同菜品的价格,第 ii 张卡片上的价格为整数 aia_i。在这些价格中,没有一个等于正整数 xx。

Kmes 被要求将这些卡片划分为最少数量的坏区间(每张卡片恰好属于一个区间)。如果无法从某个区间中选出若干卡片,使得它们的乘积等于 xx,那么这个区间被称为坏区间。Kmes 划分出的所有区间都必须是坏区间。

形式化地说,区间 (l,r)(l, r) 是坏区间,当且仅当不存在一组下标 i1<i2<…<iki_1 < i_2 < \ldots < i_k,满足 l≤i1,ik≤rl \le i_1, i_k \le r,且 ai1⋅ai2…⋅aik=xa_{i_1} \cdot a_{i_2} \ldots \cdot a_{i_k} = x。

请你帮助 Kmes 求出将卡片划分为最少坏区间的方案数,这样他就能享用他最喜欢的菜肴了。

输入格式

第一行包含一个整数 tt(1≤t≤1031 \le t \le 10^3),表示测试用例的数量。

每组测试数据的第一行包含两个整数 nn 和 xx(1≤n≤105,2≤x≤1051 \le n \le 10^5, 2 \le x \le 10^5),分别表示卡片数量和整数 xx。

每组测试数据的第二行包含 nn 个整数 aia_i(1≤ai≤2×105,ai≠x1 \le a_i \le 2 \times 10^5, a_i \neq x),表示卡片上的价格。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

对于每组测试数据,输出一个整数,表示最少需要划分的坏区间数量。

输入输出样例

  • 输入#1

    8
    6 4
    2 3 6 2 1 2
    9 100000
    50000 25000 12500 6250 3125 2 4 8 16
    5 2
    1 1 1 1 1
    8 6
    4 3 4 3 4 3 4 3
    7 12
    6 11 1 3 11 10 2
    10 5
    2 4 4 2 4 4 4 3 1 1
    7 8
    4 6 5 1 2 4 1
    8 27
    3 9 17 26 2 20 9 3

    输出#1

    3
    2
    1
    1
    2
    1
    3
    3

说明/提示

由 ChatGPT 4.1 翻译

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

首页