zoukankan      html  css  js  c++  java
  • 扩展裴蜀定理

    https://www.cnblogs.com/GXZlegend/p/7816147.html

    【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元一次不定方程,结论依然成立。
    证明: a1x1+a2x2的取值范围为 k⋅gcd(a1,a2),相当于 gcd(a1,a2)为新的系数,k为新的未知数,相当于合并了两个未知数。这样合并到低就是 gcd(a1,a2,...,an)x,因此有整数解的充要条件是 gcd(a1,a2,...,an)|c。
    因此S的取值集合就是 gcd(a1,a2,...,an)的倍数,最小的正整数S就是 gcd(a1,a2,...,an)

    #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;
    }
    

      相关试题

    https://www.cnblogs.com/GXZlegend/p/8611156.html

  • 相关阅读:
    SVN服务器搭建和配置使用详解
    Oracle命令大全
    mysql史上最全的学习资料
    jquery性能优化的38个建议
    vijosP1037搭建双塔
    vijosP1159 岳麓山上打水
    vijosP1038 添加括号
    BZOJP1003 [ZJOI2006]物流运输trans
    vijosP1006 晴天小猪历险记之Hill
    洛谷1043 数字游戏
  • 原文地址:https://www.cnblogs.com/cutemush/p/12801277.html
Copyright © 2011-2022 走看看