Min(BZOJ 1441)
2016-07-26 17:44
281 查看
题目描述
给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小输入
第一行给出数字N,代表有N个数 下面一行给出N个数输出
S的最小值样例输入
24059 -1782
样例输出
99/* (裴蜀定理:ax+by的最小正整数值为gcd(a,b)) 首先,将题意简化,设n=2,那么,就是求a1*x1+a2*x2=S的最小正整数值。 根据扩展欧几里得可以知道当gcd(a1,a2)|S时,gcd为最小正整数解。 拓展题意,就是a1、a2 ……an的gcd值。 */ #include<cstdio> #include<iostream> #include<cstdlib> using namespace std; int gcd(int a,int b) { if(!b)return a; return gcd(b,a%b); } int main() { int n,ans; scanf("%d%d",&n,&ans); for(int i=2;i<=n;i++) { int x; scanf("%d",&x); ans=gcd(ans,x); } printf("%d",abs(ans)); return 0; }
View Code
相关文章推荐
- ROS_Kinetic_20 ROS基础补充
- ROS_Kinetic_20 ROS基础补充
- 反汇编
- 华为手机运行崩溃不显示报错信息的解决办法
- iOS处理图片拉伸的几种方法
- 产品开发中,TR技术评审节点
- 关于CSS书写的那些事
- AngularJS 事件
- eclipse项目导入到Android Studio中
- lavavel连接数据库的增删改查操作
- 观看《合伙中国人》的创投节目
- Servlet —— 只有一个实例
- 读写锁
- [Leetcode]138. Copy List with Random Pointer
- Linux学习笔记 1
- apc和apcu
- tensorflow android demo安装注意事项
- 简单的刮刮乐源码
- ubuntu下安装redis
- IOS获取设备信息