BestCoder Round #49 ($) 1001 Untitled

5339 Untitled

问题描述

有一个整数和个整数。请你得出最小的,,也就是最少要选择多少个数字。如果无解,请输出.

输入描述

输入文件的第一行有一个正整数 ,表示数据组数。接下去有组数据,每组数据的第一行有两个正整数和 (6).第二行有个正整数6).

输出描述

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

输入样例

22 92 72 96 7

输出样例

2-1【思路】

.

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000"//C#include <cctype>#include <cerrno>#include <cfloat>#include <ciso646>#include <climits>#include <clocale>#include <cmath>#include <csetjmp>#include <csignal>#include <cstdarg>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>//C++#include <algorithm>#include <bitset>#include <complex>#include <deque>#include <exception>#include <fstream>#include <functional>#include <iomanip>#include <ios>#include <iosfwd>#include <iostream>#include <istream>#include <iterator>#include <limits>#include <list>#include <locale>#include <map>#include <memory>#include <new>#include <numeric>#include <ostream>#include <queue>#include <set>#include <sstream>#include <stack>#include <stdexcept>#include <streambuf>#include <string>#include <typeinfo>#include <utility>#include <valarray>#include <vector>using namespace std;#define rep(i,j,k) for(int i=(int)j;i<(int)k;++i)#define per(i,j,k) for(int i=(int)j;i>(int)k;–i)#define lowbit(a) a&-a#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:a#define mem(a,b) memset(a,b,sizeof(a))typedef long long LL;typedef unsigned long long LLU;typedef double db;const int N=1e5;const int inf=0x3f3f3f3f;int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};int movv[5][2]= {{1,0},{0,1},{0,0},{-1,0},{0,-1}};inline LL read(){int c=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){ c=c*10+ch-'0'; ch=getchar();}return c*f;}bool cmp(const int &x,const int &y){return x>y;}int t,a,n,m;int num[N];int ans;void dfs(int m,int k,int d)///mod,长度,搜索深度{if(m==0) {ans=d;return;}if(d>ans){return ;}if(k>=n){return;}dfs(m%num[k],k+1,d+1);dfs(m,k+1,d);}int main(){t=read();while(t–){n=read();a=read();for(int i=0; i<n; ++i){num[i]=read();}sort(num,num+n,cmp);ans = inf;dfs(a,0,0);if(ans==inf) puts("-1");else printf("%d\n",ans);}return 0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

变幻原是永恒,我们唯有用永恒的诺言制约世事的变幻。

BestCoder Round #49 ($) 1001 Untitled

相关文章:

你感兴趣的文章:

标签云: