首页 > 其他分享 >[蓝桥杯 2019 省 B] 等差数列

[蓝桥杯 2019 省 B] 等差数列

时间:2024-03-09 20:56:33浏览次数:29  
标签:a1 gcd 蓝桥 2019 include 等差数列

实际上这道题不需要先排序再求gcd,因为无论是哪两项之前作差,都不会影响最后的gcd的结果。

因为公差是从a2-a1开始算的,因此i=1时要特殊处理,不能把a1-0计入贡献,否则会算出错误的gcd。

即作差时不要加上a1-0,统计最值时不要漏掉a1

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
#include <cmath>
#define For(i, j, n) for(int i = j ; i <= n ; ++i)
using namespace std;

const int N = 1e5 + 5;

int n, maxn = -1, minn = 1e9 + 1;

int gcd(int a, int b)
{
    return b?gcd(b, a % b):a;
}

int main()
{
    scanf("%d", &n);
    int x = 0, y = 0, new_d = 0, old_d = 0, ans = 0;
    scanf("%d", &y);
    maxn = max(maxn, y);
    minn = min(minn, y);
    for(int i = 2; i <= n; i++)
    {
        scanf("%d", &x);
        new_d = abs(x - y);
        y = x;
        ans = gcd(ans, gcd(old_d, new_d));
        old_d = new_d;
        maxn = max(maxn, x);
        minn = min(minn, x);
    }
    if(ans == 0)
        printf("%d\n", n);
    else
        printf("%d\n", (maxn - minn) / ans + 1);
    return 0;
}

 

标签:a1,gcd,蓝桥,2019,include,等差数列
From: https://www.cnblogs.com/smartljy/p/18063271

相关文章

  • Java蓝桥杯题目——1264排个序
    题目 思路:1、输入数据2、用冒泡排序将数组(下标为pj的)部分升序,3、判断是否有前一个元素大于后一个元素(降序),有则返回false注意:(1)数组p元素的取值不能大于数组a的长度,因为p元素是a的下标(2)数组下标越界问题,使用i<a.length判断(3)并非所有元素都要降序才返回false,只要有前一个元......
  • 每天一道蓝桥杯 Day2 翻转+阶乘求和
    阶乘求和 只要后9位的话,那就只考虑后9位!如何只算后9位?有一个很经典的运算:取模。回想入门c语言时做过一道题,给定三位数,要求进行数字翻转。比如给定n,n=123,要翻转成321。一个做法是令a1=n%10,a2=(n%100)/10,a3=n/100输出a1*100+a2*10+a3即可。所以遇到求一个很大的值除以某数......
  • P8630 [蓝桥杯 2015 国 B] 密文搜索
    网站:https://www.luogu.com.cn/problem/P8630代码如下:主要是用了map的思想#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<string>#include<string.h>#include<iomanip>#include<map>#incl......
  • 第十二届蓝桥杯填空题
    目录试题A:卡片法一、暴力测试法法二、另解试题B:直线题解试题C:货物摆放法一、暴力法二、在遍历之前筛掉不是n的因数的试题D:路径法一、改进的迪杰斯特拉算法法二、动态规划试题E:回路计数法一、试题A:卡片分析:11年是从1到2020,2出现的次数,这个题感觉反过来了,求1到多少0-9出现的次数......
  • 2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题
    2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题C.数组分割思路:因为最后要是分为2组偶数。由于偶数+偶数=偶数,奇数+奇数=偶数。那么我们的奇数个数一定要是偶数个。如果奇数个数为奇数个那直接就不行了,答案是0。如果奇数的个数是偶数的话,假设偶数n个,奇数m个。\(C_{n}^{0}+......
  • 每天一道蓝桥杯Day1 分考场(dfs+结论)
    题意:这道题第一眼咋看以为是图论,但是要抽象成图论的话就会变成:给定一个无向图,要求对点染色,使得任意相邻点之间颜色不能相同,试问最少的颜色数是多少?发现转化成图论后好像也没有什么图论算法可以解决,这个转化不是很有效。往往不知道怎么下手时可以试着考虑极端情况,比如考虑上界......
  • P8686 [蓝桥杯 2019 省 A] 修改数组
    备赛蓝桥杯和icpc的习题:一道并查集的题目>#include<iostream>>#include<vector>>#include<algorithm>>#include<math.h>>#include<string>>#include<string.h>>#include<iomanip>>#include<map>&g......
  • 流程图制作工具和绘图软件Visio2019下载
    Visio2019专业版是微软公司推出的功能强大的专业流程绘制工具,旨在以直观的方式工作,轻松绘制流程图。它可以创建各种流程图、网络图、组织结构图、工程设计以及其他使用现代形状和模板的内容。主要特点:协作共赢:支持多人同时编辑Visio图表,并轻松合并更改。获取实际见解......
  • 2020蓝桥杯c语言省赛B组
    2020蓝桥杯省赛B组1.回文日期考点枚举+翻转完整代码#include<bits/stdc++.h>usingnamespacestd;boolrn(intt){ if((t%4==0&&t%100!=0)||t%400==0)returntrue; returnfalse;}注意:是整体翻转不是年月日变成日月年!boolf(intn,inty,intr){inth=n*10000+......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World 1 盲注
    页面打开如上获取到信息flag在flag表中的flag列中尝试注入发现对用户的输入进行了限制使用burp进行fuzz测试其中535代表该页面对该条件进行了过滤其中括号并没有被过滤所以可以利用括号来代替空格进行盲注已知f的ascii码为102构筑等式(select(ascii(mid(flag,1,1)......