国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

bzoj 1441: Min (gcd+裴蜀定理)

2019-11-08 03:27:19
字體:
供稿:網(wǎng)友

1441: Min

Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 520  Solved: 342[Submit][Status][Discuss]

Description

給出n個數(shù)(A1...An)現(xiàn)求一組整數(shù)序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小

Input

第一行給出數(shù)字N,代表有N個數(shù) 下面一行給出N個數(shù)

Output

S的最小值

Sample Input

24059 -1782

Sample Output

99

HINT

Source

[Submit][Status][Discuss]


題解:gcd+裴蜀定理

gcd(a,b)就是最小的可以表示成ax+b*y的正整數(shù)。

所以我們直接對于所有讀入的a求gcd即可

因為x,y的正負(fù)是不確定的,所有完全可以用x,y來實現(xiàn)a,b的正負(fù),所以直接忽略a的符號即可。

#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int n;int gcd(int x,int y){	int r;	while (y) {		r=x%y;		x=y; y=r;	}	return x;}int main(){	freopen("a.in","r",stdin);	scanf("%d",&n);	int a1,a2; 	scanf("%d",&a1); 	if (a1<0) a1=-a1;	for (int i=2;i<=n;i++){		scanf("%d",&a2); 		if (a2<0) a2=-a2;		a1=gcd(a1,a2);	}	PRintf("%d/n",a1);}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兰市| 丰顺县| 望奎县| 宜州市| 健康| 丹阳市| 吉安市| 梁山县| 乃东县| 蓬安县| 云梦县| 大兴区| 且末县| 锡林郭勒盟| 平湖市| 宜黄县| 溧阳市| 安徽省| 睢宁县| 刚察县| 靖江市| 平陆县| 佛教| 大理市| 长寿区| 长丰县| 会理县| 嵊泗县| 西贡区| 襄樊市| 合肥市| 孝昌县| 北流市| 阿鲁科尔沁旗| 长丰县| 都兰县| 云阳县| 灵璧县| 伊宁县| 江源县| 永平县|