最短路
如果可以直接与数组相等就是最短的,否则就需要拿最大的数比较最少次数,如果有余数说明差一点需要加1,如果x<最大的数就需要查询数组是否有与他一样大的,就为1,否则为2步完成,因为线可以无限弯曲,所以只需要考虑大小几次够长度,okok,感觉比其他的好理解吧,自己的解法,不喜勿喷,本人菜菜一个!!!!
include [HTML_REMOVED]
using namespace std;
int main()
{
int t,n,x;
cin>>t;
while(t–)
{
cin>>n>>x;
int a[n];
for(int i=0;i[HTML_REMOVED]>a[i];
sort(a,a+n);
if(x>=a[n-1]){
if(x%a[n-1]==0)
cout<<x/a[n-1]<<endl;
else
cout<<x/a[n-1]+1<<endl;
}
else if(x<a[n-1])
{
for(int i=0;i<n;i++)
{if(x==a[i])
{cout<<1<<endl;break;}
if(i==n-1)
{cout<<2<<endl;break;}
}
}
}
}
for(int i=0;i[HTML_REMOVED]>a[i];这个是循环赋值给a[i]