有点久远的一题,觉得题目极为简洁,写起来挺好玩的。
just monika
问所给b[j]从gcd(a[1],b[j])一直gcd到gcd(a[n],b[j])
考的是一个性质:
gcd(a,b)=gcd(a,|b-a|)
然后仔细想想,让每项都消掉b[j]的做法,思路:
聪明的你一定秒懂了(别吐槽我的字。。。。。)
最后给出ac代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int gcd(int a,int b){
if(a<b)swap(a,b);
return b==0?a:gcd(b,a%b);
}
int main(){
int n,m,x,a,l=0;
cin>>n>>m>>x;
for(int i=1;i<n;i++){
cin>>a;
l=gcd(l,(a-x));
}
for(int i=1;i<=m;i++){
cin>>a;
cout<<gcd((x+a),l)<<" ";
}
return 0;
}
之后两天会填一下之前的坑(大概)qwq