*【模拟】等差数列

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

【题意】20220623scy修改数据
给定 $n$ 个数,从中找出尽可能多的数使得他们能够组成一个等差数列。求最长的等差数列的长度。

【输入描述】
第一行是一个整数 $n(1 \le n \le 100)$。
接下来一行包括了n个数,每个数的绝对值不超过 $10^6$ 。

【输出描述】
对于每个输入数据,输出你所找出的最长等差数列的长度。

【样例输入】
7
3 8 4 5 6 2 2

【样例输出】
5

【解释】
找出的数为:2,3,4,5,6,总共5个。

Hint

#include<bits/stdc++.h>
using namespace std;
int a[110];
int main()
{
    int n;scanf("%d",&n);
    for(int i=1;i<= n;i++)scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    int ans=1;
    for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)//以a[i]作为开头,第二个为a[j],枚举公差
    {
        int d=a[j]-a[i];
		int s=2;
		for(int k=j+1;k<=n;k++)if(a[k]-a[i]==d*s)s++;
        ans=max(ans,s);
    }
    printf("%d\n",ans);
    return 0;
}

Source

J4

入门8.1(函数+数学模拟)

未参加
状态
已结束
规则
XCPC
题目
20
开始于
2024-8-1 0:00
结束于
2024-8-10 4:00
持续时间
220 小时
主持人
参赛人数
35