bzoj1441Min 裴蜀定理

来源:互联网 发布:大煌软件 编辑:程序博客网 时间:2024/04/29 14:00

一开始以为是什么构造题目,后来才发现是裴蜀定理。。
裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
也就是说,忽略符号,gcd(a,b)就是ax+by所能表示的最小正整数
对所有的数求gcd即可

#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=1e5+5;int n,m,x,ans;int a[N];int gcd(int a,int b){    if (!b) return a;    else return gcd(b,a%b);}int main(){    scanf("%d",&n);    scanf("%d",&ans);    ans=abs(ans);    fo(i,1,n-1)    {        scanf("%d",&x);        x=abs(x);        ans=gcd(ans,x);    }    printf("%d\n",ans);}
原创粉丝点击