牛客挑战赛47 A 一道GCD问题

思路参考牛客上的题解:
根据多维的更相减损术得gcd(x,y,z)=gcd(x,y−x,z−y)得
gcd(a1+k,a2+k,a3+k…,an+k)=gcd(a1+k,a2-a1,a3-a2…)gcd(a1+k,a2+k,a3+k…,an+k)=gcd(a1+k,a2−a1,a3−a2…)
我们很容易可以求得等式右边的值为g我们很容易可以求得等式右边的值为g
那么对于最小得k就是(g-a1%g)%g 注意要排序;

参考链接:来自ID:7QQQQQQQ的评论

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <cstdlib>
#define INF 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define re register
#define lson rt<<1
#define rson rt<<1|1
#define lowbit(a) ((a)&-(a))
#define ios std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
#define fi first
#define rep(i,n) for(int i=0;(i)<(n);i++)
#define rep1(i,n) for(int i=1;(i)<=(n);i++)
#define se second
#define scd(a) scanf("%d",&a)
#define scdd(a,b) scanf("%d%d",&a,&b)
#define scddd(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define ac cout<<ans<<"\n"
using namespace std;
typedef long long  ll;
typedef unsigned long long  ull;
typedef pair<ll,ll> pii;
int dx[4]= {-1,1,0,0},dy[4]= {0,0,1,-1};
const ll mod=1e9+7;
const ll N =1e6+10;
const double eps = 1e-4;
//const double pi=acos(-1);
int n;
ll a[N];
void sovle(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+1+n);ll now=0;for(int i=2;i<=n;i++){now=__gcd(now,a[i]-a[i-1]);}ll k=(now-a[1]%now)%now;cout<<now<<' '<<k<<endl;
}
int main()
{iosint t=1;// cin>>t;while(t--){sovle();}return 0;
}

牛客挑战赛47 A 一道GCD问题相关推荐

  1. 牛客挑战赛47 D Lots of Edges(最短路+递归枚举子集)

    牛客挑战赛47 D Lots of Edges 思路:点的权值最多只有(1<<17)-1(131071) ,那我们可以枚举终点的值来算最短路,每个点能连边的值都是固定的,可以通过递归枚举子 ...

  2. 牛客挑战赛47 C 条件(Floyd bitset优化)

    牛客挑战赛47 C 条件 思路:首先我们要两个图,一个是一定能到达的,一个是可能到达的,如果我们使用floyd (n^3)就有可能会超时,因为只要求询问能否到达,所以权值只有0和1,那我们可以使用bi ...

  3. 牛客挑战赛42 A.小睿睿的数列

    牛客挑战赛42 A.小睿睿的数列 题目链接 题目描述 小睿睿给了你一个长度为n的数列,他想问你该数列中满足条件(区间内存在某个数是区间内所有数的公因数)的最长区间有多少个 输入描述: 第一行 111 ...

  4. 牛客挑战赛36 - 纸飞机

    题目链接:牛客挑战赛36 - 纸飞机 题目描述 直线上有n座山峰,第i座的高度为hi.从某座山峰上放飞一架纸飞机,它可以从左往右依次经过一系列高度严格递减的山头. 假设五座山峰的高度依次是3,4,3, ...

  5. 牛客挑战赛34 A 能天使的愿望 (dp 分组背包)

    链接:https://ac.nowcoder.com/acm/contest/2271/A 来源:牛客网 题目描述 出题人寄给大家的一些闲话:参加了CSP-J/S 2019 的同学,考的都怎么样啊?不 ...

  6. 牛客挑战赛34 A.能天使的愿望(分组背包)

    链接:https://ac.nowcoder.com/acm/contest/2271/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 65536K,其他语言1310 ...

  7. 牛客挑战赛48--A and B

    A-天使果冻 链接:https://ac.nowcoder.com/acm/contest/11161/A 来源:牛客网 题意:一个数组包含n个数,求前i个数的次大值是多少(倘若最大值有两个,则次大值 ...

  8. 牛客挑战赛51 E NIT的gcd(欧拉反演,建图优化,三元环计数)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 给你一个正整数 nnn. 请你输出 ∑i=1n∑j=1n∑k=1ngcd⁡(i,j)g ...

  9. 牛客多校4 - Harder Gcd Problem(构造+贪心)

    题目链接:点击查看 题目大意:给出一个 n ,表示 1 ~ n 的 n 个数字,现在要求选出尽可能多的两两匹配,使得每组匹配的 gcd 都大于 1,输出最多能有多少组匹配,以及方案 题目分析: 这样的 ...

最新文章

  1. 图解phpstorm常用快捷键
  2. AAAI 2020 | 通过解纠缠模型探测语义和语法的大脑表征机制
  3. sharepoint站点Feature的定制与开发 以及 stsadm 常用命令
  4. 软件回归测试及其实践
  5. django中实现websocket
  6. 《C++ Primer 5th》笔记(10 / 19):泛型算法
  7. bzoj4598 [Sdoi2016]模式字符串 hash+点分
  8. linux双系统uefi引导修复,Windows和Ubuntu双系统,修复UEFI引导的两种办法
  9. 文字排版不可不看的优秀案例合集
  10. 运维管理中的制度和流程
  11. 剑指offer面试题[21]包含min函数的栈
  12. 一号教学楼供配电设计
  13. 如何查看MySQL源码
  14. python 勒索病毒_lucky 勒索病毒分析与文件解密
  15. Linux 系统升级蝉道
  16. HttpClilent整合Spring使用【配置和代码】
  17. Vue3中Compositions API的使用(一)
  18. 天行健,君子以自强不息;地势坤,群子以厚德载物。
  19. 中规中矩的输入两个正整数m和n,求其最大公约数和最小公倍数。
  20. 【c++数据结构】栈混洗的甄别算法

热门文章

  1. 硕博士的朋友圈都有哪些特点?
  2. 用 Python 实现打飞机
  3. 撤回的微信消息真的看不到?78行Python代码帮你看穿一切!
  4. 干货整理:处理不平衡数据的技巧总结!收好不谢
  5. java笔试题递归,递归(网上搜的一些笔试题)
  6. 在python中strip_python中strip()函数怎么用?
  7. linux perl模块检测,Linux有问必答:如何用Perl检测Linux的发行版本
  8. php的old函数,laravel单元测试之phpUnit中old()函数报错解决
  9. circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业
  10. 算法设计与分析——动态规划——最长公共子序列