codevs 1006 等差数列

题目描述 Description

给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度.

输入描述 Input Description

第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000.

输出描述 Output Description

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

样例输入 Sample Input

7

3

8

4

5

6

2

2

样例输出 Sample Output

5

分析:

水题。。。排序+枚举即可。

#include<iostream>
#include<algorithm>
using namespace std;
int a[110],ans=1;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=1;i<=n;++i)
    {
        for(int j=i+1;j<=n;++j)
        {
            int t=1;
            int m=a[j]-a[i],l=i;
            for(int k=i+1;k<=n;++k)
            {
                if(a[k]-a[l]==m)
                {
                    ++t;
                    l=k;
                }
            }
            ans=max(t,ans);
        }
    }
    cout<<ans;
    return 0;

}
时间: 2024-10-25 19:22:03

codevs 1006 等差数列的相关文章

1006 等差数列

1006 等差数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度. 输入描述 Input Description 第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000. 输出描述 Output Description 对于每个输入数据,输出你所找出的最长等差数列的长度 样例输入 Sam

codevs 等差数列

1006 等差数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度. 输入描述 Input Description 第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000. 输出描述 Output Description 对于每个输入数据,输出你所找出的最长等差数列的长度 样例输入 Sam

【wikioi1006】等差数列

1006 等差数列 题目描述 Description 给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度. 输入描述 Input Description 第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000. 输出描述 Output Description 对于每个输入数据,输出你所找出的最长等差数列的长度 样例输入 Sample Input 7 3 8 4 5 6 2 2 样例输出 Sample Output

code1006 等差数列

我绞尽脑汁想一个更好的算法,然而不能如愿,只好写一个n^3的了 很简单,就是暴力搜索(还好n<100) 先排序,然后循环i=1ton,j=i+1ton 把a[i]a[j]确定为等差数列开始的两个数,确定公差,然后用search()搜这个数列的长度 取所有的最大值即可 代码如下: #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algo

CODEVS1006&amp;&amp;2081&amp;&amp;2205等差数列

复习dp,做了一系列的等差数列,突然发现第一个和第二个是穷举的... 1006: 题目描述 Description 给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度. 思路:穷举,n^3的时间复杂度,稳过. code: #include<iostream>#include<cstdio>#include<algorithm>using namespace std;int a[101]={0};int

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1

[ CodeVS冲杯之路 ] P2492

不充钱,你怎么AC? 题目:http://codevs.cn/problem/2492/ 在此先orz小胖子,教我怎么路径压缩链表,那么这样就可以在任意节点跳进链表啦(手动@LCF) 对于查询操作,直接树状数组(以下简称BIT)维护,修改操作就一个个暴力开方搞,再用差值单点更新BIT 不过这样会TLE,要加一点优化对不对,正如开头所说的路径压缩链表 路径压缩链表其实就是个并查集,在普通的链表里,删去两个连续的节点后会是下面这种情况,如删去2,3 当访问 2 的时候,会跳到3,但 3 已经删除了,

[CODEVS 1281] Xn数列

描述 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn http://codevs.cn/problem/1281/ 分析 比较裸的矩阵乘法题, 好久没做了, 写写思路 假设矩阵 A = { {a1, a2}, {a3, a4} }, B = { {b1, b2}, {b3, b4} }. 根据矩阵乘法的计算方法, 有 : A×B = { {a1b1+a2b2, a1b2+a2b4}, {a3b1+a4b3, a3b2+a4b4} }. 那

TypeError: Error #1006: value 不是函数。

1.错误原因 TypeError: Error #1006: value 不是函数. at BasicChart/dataFunc()[E:\Flash Builder\Map\src\BasicChart.mxml:68] at mx.charts.chartClasses::Series/cacheDefaultValues()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\Seri