bzoj1441Min 扩展裴蜀定理

Posted GXZlegend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1441Min 扩展裴蜀定理相关的知识,希望对你有一定的参考价值。

题目描述

给出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\n" , ans);
    return 0;
}

 

 

以上是关于bzoj1441Min 扩展裴蜀定理的主要内容,如果未能解决你的问题,请参考以下文章

裴蜀定理 BZOJ2299[HAOI2011] 向量

BZOJ 2299 向量(裴蜀定理)

BZOJ 2257: [Jsoi2009]瓶子和燃料数论:裴蜀定理

[BZOJ 2299][HAOI 2011]向量 题解(裴蜀定理)

bzoj 2257[Jsoi2009]瓶子和燃料 数论/裴蜀定理

浅谈扩展欧几里得定理(附裴蜀定理)