博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces - 633D Fibonacci-ish 大数标记map+pair的使用
阅读量:4950 次
发布时间:2019-06-11

本文共 1925 字,大约阅读时间需要 6 分钟。

Fibonacci-ish

Yash has recently learnt about the Fibonacci sequence and is very excited about it. He calls a sequence Fibonacci-ish if

  1. the sequence consists of at least two elements
  2. f0 and f1 are arbitrary
  3. fn + 2 = fn + 1 + fn for all n ≥ 0.

You are given some sequence of integers a1, a2, ..., an. Your task is rearrange elements of this sequence in such a way that its longest possible prefix is Fibonacci-ish sequence.

Input

The first line of the input contains a single integer n (2 ≤ n ≤ 1000) — the length of the sequence ai.

The second line contains n integers a1, a2, ..., an (|ai| ≤ 109).

Output

Print the length of the longest possible Fibonacci-ish prefix of the given sequence after rearrangement.

Examples

Input
3 1 2 -1
Output
3
Input
5 28 35 7 14 21
Output
4

Note

In the first sample, if we rearrange elements of the sequence as  - 1, 2, 1, the whole sequence ai would be Fibonacci-ish.

In the second sample, the optimal way to rearrange elements is 28.

 

从已知元素中寻找最长斐波那契长度。

个人非常喜欢的一道题,比较综合。用到了一些套路,比如用map标记大数,以及加上pair来标记一组数。

开始有往dp方向考虑,想先给数列排个序,然后依次往右找。但是两数相加不一定会变大,和可能会在左边,比如本题负数情况。

再一个每次寻找下一个值时,都要重新使用标记,为了防止后效性,使用递归来处理。

 

#include
#include
#include
#include
#include
#include
#include
#define MAX 1005#define INF 0x3f3f3f3fusing namespace std;int a[MAX],c;map
mp;map
,int> mmp;void dfs(int x,int y){ //递归寻找 if(mp[x+y]>0) { c++; mp[x+y]--; dfs(y,x+y); mp[x+y]++; }}int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&a[i]); mp[a[i]]++; //大数标记 } int max=0; for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ //考虑负数情况 if(i!=j){ if(mmp[make_pair(a[i],a[j])]) continue; mmp[make_pair(a[i],a[j])]=1; //标记一对数,优化防T c=2; mp[a[i]]--; mp[a[j]]--; dfs(a[i],a[j]); mp[a[i]]++; mp[a[j]]++; if(c>max) max=c; } } } printf("%d\n",max); return 0;}

 

转载于:https://www.cnblogs.com/yzm10/p/8724574.html

你可能感兴趣的文章
ThinkPHP框架知识的注意点
查看>>
平滑滤波(Smooth); java语言实现
查看>>
注意力的培养是学校教学的真正目的
查看>>
学习总结:机器学习(三)
查看>>
图论 邻接表实现 动态数组实现
查看>>
IP通信基础 第八周 第九周总结
查看>>
kali,parrot最新更新debain源
查看>>
平衡树学习笔记(2)-------Treap
查看>>
在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)
查看>>
./mosquitto_internal.h:51:12: fatal error: 'ares.h' file not found
查看>>
HDU 1789 Doing Homework again(非常经典的贪心)
查看>>
本机,同机房,同城,异地,不同城,腾讯云ping延时值
查看>>
jQuery小结5
查看>>
i=i+1与i+=1的区别及效率
查看>>
指令——mkdir
查看>>
Server.MapPath
查看>>
WPF日期控件
查看>>
基本的SqlPlus命令
查看>>
oracle 日期比较出现ORA-01861: 文字与格式字符串不匹配问题
查看>>
hibernate_sequence.nextval 序列不存在
查看>>