HDU 5339 Untitled
有一個整數a和n個整數b1,…,bn。在這些數中選出若干個數並重新排列,得到c1,…,cr。我們想保證a mod c1 mod c2 mod… mod cr=0。請你得出最小的r,也就是最少要選擇多少個數字。如果無解,請輸出−1.
輸入文件的第一行有一個正整數 T≤5,表示數據組數。 接下去有T組數據,每組數據的第一行有兩個正整數n和a (1≤n≤20,1≤a≤106). 第二行有n個正整數b1,…,bn (∀1≤i≤n,1≤bi≤106).
輸出T行T個數表示每次詢問的答案。
2 2 9 2 7 2 9 6 7
2 -1
對於一組可能的答案c,如果先對一個覺小的ci取模,再對一個較大的cj取模,那麼這
/*
hdu5339
Exe.Time 0MS
Exe.Memory 1580K
1024 B 1024B
Language G++
Author zhaobing
*/
#include
#include
#include
using namespace std;
int b[100];
int flag;
int cmp(int l,int r)
{
return l=r) return ;
fang(sum,r,k,i-1);
if(sum>=b[i]) ///重要剪枝
fang(sum%b[i],r,k+1,i-1);
}
int main()
{
int t,i,j,n,a;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&a);
for(i=0; i