2021.07.20 CF1477A Nezzar and Board(最大公因數,未證)
CF1477A Nezzar and Board - 洛谷 | 計算機科學教育新生态 (luogu.com.cn)
重點:
1.最大公因數
題意:
黑闆上有n個數ai,每次你可以選擇其中兩個數x,y,将2x-y寫在黑闆上,請問最後能不能得到k。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
#define int long long
int n,t,k,a[200010], gcdi;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
s=s*10+ch-'0';
ch=getchar();
}
return s*w;
}
int gcd(int x,int y){
return !y?x:gcd(y,x%y);
}
signed main(){
//freopen("1.txt","r",stdin);
//freopen("1.out.txt","w",stdout);
t=read();
while(t--){
n=read();k=read();
for(int i=1;i<=n;i++)a[i]=read();
int ls=a[1];
k-=ls;
for(int i=1;i<=n;i++)a[i]-=ls;
gcdi=abs(a[2]);
for(int i=3;i<=n;i++)gcdi=gcd(gcdi,abs(a[i]));
if(k%gcdi)cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}