Problem B Arithmetic Progressions
题意:给你一串数字(数字没有重复),让你找出最长的等差数列,输出最长的长度。
两种方法,
一种是二分查找用binsery_search,另一种是用dp,这种方法比较巧妙。两种代码都是同学做的。
第一种,二分
二分枚举到n-ans就够了,刚开始在vj上面交不会超时,但是比赛的时候超时了找了半天错。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
// freopen("in.txt","r",stdin);
int n;
int a[5010];
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
int d;
int num;
int kase=2;
int ans=2