有多少个等差数列?

序号:#20难度:困难时间限制:500ms内存限制:10M

描述

等差数列是常见数列的一种,如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列,而这个常数叫做等差数列的公差,公差常用字母d表示。即对于数列S,它满足了(S[i]-S[i-1]) = d (i \gt 1)(S[i]−S[i−1])=d(i>1)。 显然,一个数字无法构成等差数列,而任意两个数字可以形成一个等差数列。 这里给出了一个长度为N (0 \lt N \lt 200)N(0<N<200)的数字序列,每个位置有一个整数(-100 \le \text{整数} \le 100)(−100≤整数≤100),需要找到这个数字序列里包含多少个等差数列,序列顺序固定,无需排序。 输入数据格式:\text{S[0] S[1] S[2] ... S[N]}S[0] S[1] S[2] ... S[N](以半角空格符分隔,N \gt 1N>1) 输出数据格式:等差数列数量 MM; 其中数列 SS 的项为整数

请注意时间复杂度的限制。

输入

输入一个数列[ 2 7 4 5 6 ],该数列包含等差数列: [ 2 7 ] [ 2 4 ] [ 2 5 ] [ 2 6 ] [ 7 4 ] [ 7 5 ] [ 7 6 ] [ 4 5 ] [ 4 6 ] [ 5 6 ] [ 2 4 6 ] [ 4 5 6 ]

输出

上例共包含12组等差数列,故应输出12

输入样例

2 7 4 5 6
3 3 3 3

复制样例

输出样例

12
11

思路:设dp[i][k]表示以a[i]为起点,k为公差的等差数列的个数。

转移方程为:if(a[j]+k==a[i])dp[j][k]+=(dp[i][k]+1);  (j<i)


#include<bits/stdc++.h>
#include<stdio.h>
#include<iostream>
#include<cmath>
#include<math.h>
#include<queue>
#include<set>
#include<map>
#include<iomanip>
#include<algorithm>
#include<stack>
using namespace std;
#define inf 0x3f3f3f3f
typedef long long ll;
char buf[100000];
int a[205];
ll dp[205][405];
int main()
{
#ifndef ONLINE_JUDGE
//freopen("in.txt","r",stdin);
#endif // ONLINE_JUDGE
while(gets(buf))
{
memset(dp,0,sizeof(dp));
int v;
int n=0;
char *p=strtok(buf," ");
while(p)
{
sscanf(p,"%d",&v);
a[n++]=v;
p=strtok(NULL," ");
}
ll ans=0;
for(int k=-200;k<=200;k++)
{
for(int i=n-1;i>=0;i--)
{
for(int j=i-1;j>=0;j--)
{
if(a[j]+k==a[i])
dp[j][k+200]+=(dp[i][k+200]+1);
}
}
}
for(int i=0;i<n;i++)
{
for(int k=0;k<=400;k++)
{
ans+=dp[i][k];
}
}
cout<<ans<<endl;
}
return 0; }

最新文章

  1. 微信自定义分享到朋友圈API
  2. webpack常用插件
  3. Java并发学习之十九——线程同步工具之Phaser
  4. Spring 使用注解方式进行事务管理
  5. sql语法:inner join on, left join on, right join on具体用法
  6. I/O模型浅析
  7. Git(1)----Eclipse安装Git插件
  8. 6.7 使用show profile 进行sql分析
  9. 【转】分享两个基于MDK IDE的调试输出技巧
  10. 使用android-ndk官方ndkbuild例子
  11. 009 spring boot中文件的上传与下载
  12. windows下sublime通过sftp扩展上传文件到linux服务器上
  13. APC注入(Ring3)
  14. 【WPF】拖拽ListBox中的Item
  15. 解决android有的手机拍照后上传图片被旋转的问题
  16. robotframework-ride多次运行,有时候不显示日志信息
  17. hdu 4559 涂色游戏(SG)
  18. Requests Header | Http Header
  19. Unity3D开发之Mac OS 开发环境搭建 笔记
  20. Mysql又一次整理笔记--woods备忘

热门文章

  1. JWT与Session比较和作用
  2. python 画3D的高斯曲线
  3. Idea+Maven部署打包JavaFX项目遇到的坑
  4. synchronized 底层实现原理
  5. Spark机器学习API之特征处理(二)
  6. LeetCode:1179.重新格式化部门表
  7. Java基础加强-内部类及代理
  8. python解决导入自定义库失败: ModuleNotFoundError: No module named &#39;MyLib&#39;
  9. Codeforces 845G Shortest Path Problem?
  10. 不重启linuxVMWare虚拟机添加虚拟光驱、硬盘