洛谷-----P5534 XR-3等差数列

Posted 大忽悠爱忽悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷-----P5534 XR-3等差数列相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
在这里插入图片描述

等差数列题解集合


公式法

套用数学上面的等差数列求和公式:Sn=a1*n+n(n-1)*d/2

末项公式:Sn = a1 + (n - 1) * d;

代码:

#include<iostream>
using namespace std;
class Solution {
public:
	long solution(long a1,long a2,long n)
	{
		long d = a2 - a1;
		return a1 * n + n * (n - 1) * d / 2;
	}
};
int main()
{
	Solution s;
	long a1, a2, n;
	cin >> a1 >> a2 >> n;
	cout << s.solution(a1, a2, n) << endl;
	return 0;
}

在这里插入图片描述


dfs

思路:

还是将问题树形化,化成对一颗树的遍历,这样就很方便写出递归的代码

在这里插入图片描述
显然这里是对一叉树的遍历,递归过程中我们需要求出当前所要累加上去的当前项的值,当前项的值可以通过递推公式求出来,即an=a1+(n-1)*d

代码:

#include<iostream>
using namespace std;
class Solution {
public:
	long solution(long a1,long d,long max)
	{
		if (abs(a1) > abs(max)) return 0;
		return solution(a1 + d, d, max)+a1;
	}
};
int main()
{
	Solution s;
	long a1, a2, n;
	cin >> a1 >> a2 >> n;
	long d = a2 - a1;
	//递归结束条件,累加到第n项
	long max = a1 + (n - 1) * d;
	cout << s.solution(a1,d,max)<< endl;
	return 0;
}

在这里插入图片描述
超时了

以上是关于洛谷-----P5534 XR-3等差数列的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P3928 Sequence

洛谷——P1349 广义斐波那契数列

洛谷 P1214 [USACO1.4]等差数列 Arithmetic Progressions

[洛谷P1349]广义斐波那契数列

洛谷 P2023 BZOJ 1798 [AHOI2009]维护序列

洛谷P3928 SAC E#1 - 一道简单题 Sequence2