CF1641A.Great Sequence

普及-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

A sequence of positive integers is called great for a positive integer xx, if we can split it into pairs in such a way that in each pair the first number multiplied by xx is equal to the second number. More formally, a sequence aa of size nn is great for a positive integer xx, if nn is even and there exists a permutation pp of size nn, such that for each ii (1≤i≤n21 \le i \le \frac{n}{2}) ap2i−1⋅x=ap2ia_{p_{2i-1}} \cdot x = a_{p_{2i}}.

Sam has a sequence aa and a positive integer xx. Help him to make the sequence great: find the minimum possible number of positive integers that should be added to the sequence aa to make it great for the number xx.

一个正整数序列被称为关于正整数 xx 的“优秀序列”,如果我们可以将该序列划分为若干对,使得每一对中第一个数乘以 xx 等于第二个数。更形式化地说,一个长度为 nn 的序列 aa 被称为关于正整数 xx 的“优秀序列”,当且仅当 nn 为偶数,且存在一个长度为 nn 的排列 pp,使得对每个 ii(1≤i≤n21 \le i \le \frac{n}{2})都有 ap2i−1⋅x=ap2ia_{p_{2i-1}} \cdot x = a_{p_{2i}}。

Sam 有一个序列 aa 和一个正整数 xx。请帮助他使该序列变为关于 xx 的优秀序列:求出需向序列 aa 中添加的最少正整数个数,使得添加后的序列关于 xx 是优秀序列。

输入格式

Each test contains multiple test cases. The first line contains a single integer tt (1≤t≤20 0001 \le t \le 20\,000) — the number of test cases. Description of the test cases follows.

The first line of each test case contains two integers nn, xx (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, 2≤x≤1062 \le x \le 10^6).

The next line contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1091 \le a_i \le 10^9).

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052 \cdot 10^5.

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤20 0001 \le t \le 20\,000),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 xx(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5,2≤x≤1062 \le x \le 10^6)。

接下来一行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case print a single integer — the minimum number of integers that can be added to the end of aa to make it a great sequence for the number xx.

对于每个测试用例,输出一个整数——即需要添加到序列 aa 末尾的最少整数个数,使得 aa 成为关于数字 xx 的“优秀序列”。

输入输出样例

  • 输入#1

    4
    4 4
    1 16 4 4
    6 2
    1 2 2 2 4 7
    5 3
    5 2 3 5 15
    9 10
    10 10 10 20 1 100 200 2000 3

    输出#1

    0
    2
    3
    3

说明/提示

In the first test case, Sam got lucky and the sequence is already great for the number 44 because you can divide it into such pairs: (1,4)(1, 4), (4,16)(4, 16). Thus we can add 00 numbers.

In the second test case, you can add numbers 11 and 1414 to the sequence, then you can divide all 88 integers into such pairs: (1,2)(1, 2), (1,2)(1, 2), (2,4)(2, 4), (7,14)(7, 14). It is impossible to add less than 22 integers to fix the sequence.

在第一个测试用例中,Sam 很幸运,该序列对于数字 44 已经是“优秀”的,因为你可以将其划分为如下数对:(1,4)(1, 4)、(4,16)(4, 16)。因此我们无需添加任何数(即添加 00 个数)。

在第二个测试用例中,你可以在序列中添加数字 11 和 1414,之后便能将全部 88 个整数划分为如下数对:(1,2)(1, 2)、(1,2)(1, 2)、(2,4)(2, 4)、(7,14)(7, 14)。无法通过添加少于 22 个整数来修复该序列。

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

首页