首页 > 编程语言 >【蓝桥杯_真题演练】第十届C/C++省赛B组_H-等差数列(C++_gcd_数论)

【蓝桥杯_真题演练】第十届C/C++省赛B组_H-等差数列(C++_gcd_数论)

时间:2023-06-20 10:06:04浏览次数:29  
标签:cnt gcd temp int C++ 蓝桥 ++ long


Problem

【蓝桥杯_真题演练】第十届C/C++省赛B组_H-等差数列(C++_gcd_数论)_ci

Process

在输入的时候先去重,然后进行排序,至于他们的公差p则需要计算每两个相邻数值之间差值的最大公因数,最终的结果应该是【蓝桥杯_真题演练】第十届C/C++省赛B组_H-等差数列(C++_gcd_数论)_c++_02

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n, a[100010], cnt;
set<int> s;
int gcd(int a, int b) {
	return b == 0 ? a : gcd(b, a % b);
}
int main()
{
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		int temp;
		cin >> temp;
		if (s.count(temp) == 0)
		{
			s.insert(temp);
			a[cnt++] = temp;
		}
	}
	sort(a, a + cnt);
	int p=a[1]-a[0], q;
	for (int i = 2; i < cnt; i++) {
		q = a[i] - a[i - 1];
		p = gcd(p, q);
	}
	int result = (a[cnt - 1] - a[0]) / p + 1;
	cout << result;
	return 0;
}


标签:cnt,gcd,temp,int,C++,蓝桥,++,long
From: https://blog.51cto.com/u_16165815/6520483

相关文章

  • P1062 数列(C++_数论)
    题目描述给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:(该序列实际上就是:)请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k=3,N=100,正确答案应该是981。输入格式2个正整数,用一个空格隔开:输出格式1个正整......
  • P1095 守望者的逃离(C++_贪心_模拟/dp)
    题目描述恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步速度为17m/s,以这样的速度......
  • PTA_乙级_1006 换个格式输出整数(C++_模拟)
    让我们用字母B来表示“百”、字母S表示“十”,用12…n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。输......
  • PAT (Advanced Level)_1100 Mars Numbers (20分)(C++_模拟)
    PeopleonMarscounttheirnumberswithbase13:ZeroonEarthiscalled"tret"onMars.Thenumbers1to12onEarthiscalled"jan,feb,mar,apr,may,jun,jly,aug,sep,oct,nov,dec"onMars,respectively.Forthenexthigherdigi......
  • PAT_Advanced Level_1080 Graduate Admission(C++_模拟_快排_卡常)
    Itissaidthatin2011,thereareabout100graduateschoolsreadytoproceedover40,000applicationsinZhejiangProvince.Itwouldhelpalotifyoucouldwriteaprogramtoautomatetheadmissionprocedure.Eachapplicantwillhavetoprovidetwograd......
  • 数据结构代码整理_基于邻接表存储结构的有向图的实现(C++)
    目录RequirementsDebuggingEnvironmentChatCode1.graph.h2.test.cppRequirements       基于邻接表存储结构实现有向图的典型操作(构造、析构、增加顶点、删除顶点、增加弧、删除弧,查找一个顶点、判空、判满、图中顶点个数、邻接表中指定顶点的第一个邻接顶点、深度优先......
  • CCF_201912-2 回收站选址(C++_暴力_枚举)
    思路本来想用dfs来着,有垃圾的地方就标一后来看到数的大小为,数量却只有就果断暴力了…Code#include<bits/stdc++.h>//暴力枚举usingnamespacestd;typedeflonglongll;llx[1010],y[1010],num[1010],score[1010],ans[10];intmain(){ intn; cin>>n; for(inti=......
  • PTA_乙级_1002 写出这个数(C++_模拟)
    读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数的值。这里保证小于。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654......
  • 呼叫中心的离散事件模拟(C++_模拟)
    题目       模拟网上书店的电话接待台接电话(离散事件)的过程。用户在打电话咨询时,先输入自己的标识(如姓名或会员号),然后进入排队等待被接听电话。xauat服务人员会根据该用户在书店已购买书籍的累计消费情况对拨入的电话进行排序。累计消费超过3000元的为1类用户,最先得......
  • 逆波兰式求值(C++_模拟)
    题目       将中缀表达式翻译成后缀表达式(逆波兰表达式)时,可以去掉中缀表达式中出现的括号,简化表达式。如中缀表达式“(2+3)6”被转成后缀表达式“23+6”后,可以借助于栈对表达式求值,完成运算。规则大致如下:       遇到操作数,则入栈;       遇到二元运算符,则......