D. 相等数组

    传统题 1000ms 256MiB

相等数组

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

翁老师有一个长度为 nn 的数组 aa 以及一个常数 m2m\geq 2,对于任意的 1in1\leq i\leq n 都有 2aim2\leq a_i\leq m

翁老师喜欢元素全部相等的数组,因此他想通过以下操作把数组里的元素变得全部相等:

  • 选定一个整数 tt,满足 2tm2\leq t\leq m。然后令每一个 aia_i 都变为 gcd(ai,t)\gcd(a_i,t)
    • 其中 gcd(x,y)\gcd(x,y)x,yx,y 的最大公约数,例如 gcd(2,4)=6,gcd(15,21)=3\gcd(2,4)=6,\gcd(15,21)=3

请你求出最少几次操作可以使得数组里元素全部相等,若无论多少次都不能达到目标,输出 1-1

输入格式

本题有多组数据

第一行输入一个整数 tt 代表测试数据组数。每一组数据:

  • 第一行输入两个正整数 n,mn,m
  • 第二行输入 nn 个空格隔开的整数分别代表 a1,a2,,ana_1,a_2,\ldots,a_n

输出格式

对于每一组数据:输出一个整数,代表答案。

每一组数据的结果换行隔开。

3
3 343
343 343 343
5 100
4 8 12 16 20
4 5
2 3 4 5
0
1
2

提示

样例解释

  • 第二组数据:令 t=4t=4,可以使得所有数字都变为 44,因此只需要操作 11 次。
  • 第三组数据:令 t=2t=2,四个数字分别变为 [2, 1, 2, 1],继续令 t=3t=3,可以使得四个数组均为 11,可以证明不可能 11 次操作使得四个数字均相等。

数据范围

对于 100%100\% 的数据,1t1051 \le t \le 10^51n1051\leq n\leq 10^5n3×105\sum n\leq 3\times 10^52m1062\leq m\leq 10^62aim2\leq a_i\leq m

  • 子任务 1(30 分):保证 n20,m20\sum n\leq 20,m\leq 20
  • 子任务 2(30 分):保证 m1000m\leq 1000
  • 子任务 3(40 分):无特殊限制。

算法周赛 - round20

未参加
状态
已结束
规则
乐多
题目
4
开始于
2025-6-8 19:00
结束于
2025-6-8 21:00
持续时间
2 小时
主持人
参赛人数
27