• 【bzoj1441】Min 扩展裴蜀定理


    题目描述

    给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小

    输入

    第一行给出数字N,代表有N个数 下面一行给出N个数

    输出

    S的最小值

    样例输入

    2
    4059 -1782

    样例输出

    99


    题解

    扩展裴蜀定理

    裴蜀定理:二元一次不定方程 $ax+by=c$ 存在整数解的充分必要条件是 $gcd(a,b)|c$。

    扩展裴蜀定理:改成n元一次不定方程,结论依然成立。

    证明: $a_1x_1+a_2x_2$ 的取值范围为 $k·gcd(a_1,a_2)$ ,相当于 $gcd(a_1,a_2)$ 为新的系数, $k$ 为新的未知数,相当于合并了两个未知数。这样合并到低就是 $gcd(a_1,a_2,...,a_n)x$,因此有整数解的充要条件是 $gcd(a_1,a_2,...,a_n)|c$。

    因此 $S$ 的取值集合就是 $gcd(a_1,a_2,...,a_n)$ 的倍数,最小的正整数 $S$ 就是 $gcd(a_1,a_2,...,a_n)$ 

    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int n , x , ans = 0;
        scanf("%d" , &n);
        while(n -- ) scanf("%d" , &x) , ans = __gcd(ans , abs(x));
        printf("%d
    " , ans);
        return 0;
    }
    

     

  • 相关阅读:
    谷哥的小弟学后台(29)——动态代理
    HDU
    jni 入门 android的C编程之旅 --->环境搭建&&helloworld
    C# 开发系列(二)
    C# 开发系列(一)
    ajax跨域实现api 接口调用
    dependency injection(2)
    要读的书单
    dependency injection
    php dependency innjection
  • 原文地址:https://www.cnblogs.com/GXZlegend/p/7816147.html
Copyright © 2020-2023  润新知