zoukankan      html  css  js  c++  java
  • 2205 等差数列(dp)

    2205 等差数列

     

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 钻石 Diamond
     
     
    题目描述 Description

    等差数列的定义是一个数列S,它满足了(S[i]-S[i-1]) = d (i>1)。显然的一个单独的数字或者两个数字也可以形成一个等差数列。
    经过一定的学习小C发现这个问题太简单了,等差数列的和不就是(Sn+S1)*n/2?因为这个问题实在是太简单了,小C不屑于去解决它。这让小C的老师愤怒了,他就找了另外一个问题来问他。
    小C的老师给了他一个长度为N的数字序列,每个位置有一个整数,他需要小C帮他找到这个数字序列里面有多少个等差数列。
    ……
    这个问题似乎太难了,小C需要你的程序帮他来解决这个问题。

    输入描述 Input Description

    第一行一个整数N,表示老师给出的数字序列的长度。
    第二行有N个整数A[i],表示数字序列每个数字的大小。

    输出描述 Output Description

    输出只有一行一个整数,表示这个序列中的等差数列的个数(mod 9901)。

    样例输入 Sample Input

    5
    1 4 2 3 7

    样例输出 Sample Output

    17

    数据范围及提示 Data Size & Hint

    对于30%的数据,N <= 100
    对于70%的数据,N <= 500
    对于100%的数据,N <= 1000;-500 <= A[i] <= 500

    /*
    f[i][j]表示以i为终点(且i不为起点),差为j的个数
    穷举起点和第二项,然后更新第二项的值。
    最后就需要加上n,以为一个元素也是等差数列。
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    
    #define N 1007
    #define mod 9901
    
    using namespace std;
    int n,m,d,a[N];
    long long ans,f[N][N<<2];
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        for(int i=1;i<=n;i++)
          for(int j=i+1;j<=n;j++)
            {
                d=a[j]-a[i]+1000;
                f[j][d]=(f[i][d]+f[j][d]+1)%mod;
            }
        ans=n;
        for(int i=1;i<=n;i++)
          for(int j=0;j<=2000;j++)
            ans=(ans+f[i][j])%mod;
        printf("%lld
    ",ans);
        return 0;
        return 0;
        return 0;
    }
    折花枝,恨花枝,准拟花开人共卮,开时人去时。 怕相思,已相思,轮到相思没处辞,眉间露一丝。
  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    数据库作业5:SQL练习2
    数据库作业4:SQL练习1
    Linux的cp复制和mv移动命令的超详细介绍
    python数组添加整行或整列
    CentOS7下安装tomcat的超详细说明
  • 原文地址:https://www.cnblogs.com/L-Memory/p/7339621.html
Copyright © 2011-2022 走看看