您的位置:首页 > 其它

BestCoder Round #49 ($) HDU 5339 Untitled(1001)

2015-09-10 18:39 190 查看


HDU 5339 Untitled

Time Limit: 2000/1000 MS (Java/Others)

Memory Limit: 65536/65536 K (Java/Others)

问题描述
有一个整数aa和nn个整数b_1, \ldots, b_nb​1​​,…,b​n​​。在这些数中选出若干个数并重新排列,得到c_1, \ldots, c_rc​1​​,…,c​r​​。我们想保证a \ mod \ c_1 \ mod \ c_2 \ mod \ldots \ mod \ c_r = 0a mod c​1​​ mod c​2​​ mod… mod c​r​​=0。请你得出最小的rr,也就是最少要选择多少个数字。如果无解,请输出-1−1.

输入描述
输入文件的第一行有一个正整数 T \leq 5T≤5,表示数据组数。

接下去有TT组数据,每组数据的第一行有两个正整数nn和aa (1 \leq n \leq 20, 1 \leq a \leq 10^{6}1≤n≤20,1≤a≤10​6​​).

第二行有nn个正整数b_1, \ldots, b_nb​1​​,…,b​n​​ (\forall 1\leq i \leq n, 1 \leq b_i \leq 10^{6}∀1≤i≤n,1≤b​i​​≤10​6​​).

输出描述
输出TT行TT个数表示每次询问的答案。

输入样例
2
2 9
2 7
2 9
6 7

输出样例
2
-1


出题人:

对于一组可能的答案cc,如果先对一个觉小的c_ic​i​​取模,再对一个较大的c_jc​j​​取模,那么这

个较大的c_jc​j​​肯定是没有用的。因此最终的答案序列中的cc肯定是不增的。那么就枚举选

哪些数字,并从大到小取模看看结果是否是00就可以了。时间复杂度O(2^n)O(2​n​​).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: