CF1497B.M-arrays

普及-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an array a1,a2,…,ana_1, a_2, \ldots, a_n consisting of nn positive integers and a positive integer mm.

You should divide elements of this array into some arrays. You can order the elements in the new arrays as you want.

Let's call an array mm-divisible if for each two adjacent numbers in the array (two numbers on the positions ii and i+1i+1 are called adjacent for each ii) their sum is divisible by mm. An array of one element is mm-divisible.

Find the smallest number of mm-divisible arrays that a1,a2,…,ana_1, a_2, \ldots, a_n is possible to divide into.

给你一个由 nn 个正整数组成的数组 a1,a2,…,ana_1, a_2, \ldots, a_n,以及一个正整数 mm。

你需要将该数组的元素划分到若干个新数组中。你可以在每个新数组中任意排列其元素。

我们称一个数组是 mm-可分的,当且仅当该数组中每一对相邻元素(即对每个 ii,位置 ii 和 i+1i+1 上的两个数)之和都能被 mm 整除。仅含一个元素的数组总是 mm-可分的。

求将 a1,a2,…,ana_1, a_2, \ldots, a_n 划分为 mm-可分数组时,所需的最少数组个数。

输入格式

The first line contains a single integer tt (1≤t≤1000)(1 \le t \le 1000) — the number of test cases.

The first line of each test case contains two integers nn, mm (1≤n≤105,1≤m≤105)(1 \le n \le 10^5, 1 \le m \le 10^5).

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤109)(1 \le a_i \le 10^9).

It is guaranteed that the sum of nn and the sum of mm over all test cases do not exceed 10510^5.

第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000)—— 表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn、mm(1≤n≤1051 \le n \le 10^5,1≤m≤1051 \le m \le 10^5)。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9)。

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

输出格式

For each test case print the answer to the problem.

对于每个测试用例,输出该问题的答案。

输入输出样例

  • 输入#1

    4
    6 4
    2 2 8 6 9 4
    10 8
    1 1 1 5 2 4 4 8 6 7
    1 1
    666
    2 2
    2 4

    输出#1

    3
    6
    1
    1

说明/提示

In the first test case we can divide the elements as follows:

  • [4,8][4, 8]. It is a 44-divisible array because 4+84+8 is divisible by 44.
  • [2,6,2][2, 6, 2]. It is a 44-divisible array because 2+62+6 and 6+26+2 are divisible by 44.
  • [9][9]. It is a 44-divisible array because it consists of one element.

在第一个测试用例中,我们可以将元素按如下方式划分:

  • [4,8][4, 8]。它是一个 44-可整除数组,因为 4+84+8 能被 44 整除。
  • [2,6,2][2, 6, 2]。它是一个 44-可整除数组,因为 2+62+6 和 6+26+2 都能被 44 整除。
  • [9][9]。它是一个 44-可整除数组,因为它仅包含一个元素。

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

首页