Manthan, Codefest 16 D. Fibonacci-ish
3 seconds
512 megabytes
standard input
standard output
Yash has recently learnt about the Fibonacci sequence and is very excited about it. He calls a sequence Fibonacci-ish if
- the sequence consists of at least two elements
- f0 and f1 are arbitrary
- 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.
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).
Print the length of the longest possible Fibonacci-ish prefix of the given sequence after rearrangement.
3
1 2 -1
3
5
28 35 7 14 21
4
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一一对应下数值,开个数组记录各个值的个数,然后根据斐波那契数列依次推下个数字
在数组中查找,其中开始为0,0需要特判否则复杂度n3;
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string.h>
5 #include<math.h>
6 #include<queue>
7 #include<map>
8 using namespace std;
9 const long long N=1e9+7;
10 typedef long long LL;
11 LL vv[25];
12 LL MM[1005];
13 int NN[1005];
14 int KK[1005];
15 map<LL,LL>my;
16 LL quickmi(long long a,long long b);
17 int main(void)
18 {
19 int i,j,k;
20 while(scanf("%d",&k)!=EOF)
21 {memset(NN,0,sizeof(NN));
22 for(i=0; i<k; i++)
23 {
24 scanf("%I64d",&MM[i]);
25 }
26 int cnt=1;sort(MM,MM+k);my[MM[0]]=1;
27 NN[1]++;
28 for(i=1; i<k; i++)
29 {
30 if(MM[i]!=MM[i-1])
31 cnt++;
32 NN[cnt]++;
33 my[MM[i]]=cnt;
34 }int maxx=2;
35 for(i=0; i<k; i++)
36 {
37 for(j=0; j<k; j++)
38 {int sum=2;
39 if(i!=j)
40 {int KK[1005]={0};LL p=MM[i];LL q=MM[j];
41 if(p==0&&q==0)
42 {
43 sum=NN[my[0]];
44 }
45 else {KK[my[p]]++;KK[my[q]]++;
46 while(true)
47 {
48 LL ans=p+q;
49 KK[my[ans]]++;
50 if(KK[my[ans]]<=NN[my[ans]])
51 sum++;
52 else break;
53 p=q;q=ans;
54 }}
55 if(sum>maxx)
56 maxx=sum;}
57 }
58 }printf("%d\n",maxx);
59 }
60 return 0;
61 }
62
63 LL quickmi(long long a,long long b)
64 {
65 LL sum=1;
66 while(b)
67 {
68 if(b&1)
69 sum=(sum*a)%(N);
70 a=(a*a)%N;
71 b/=2;
72 }
73 return sum;
74 }
Manthan, Codefest 16 D. Fibonacci-ish的更多相关文章
- Manthan, Codefest 16 H. Fibonacci-ish II 大力出奇迹 莫队 线段树 矩阵
H. Fibonacci-ish II 题目连接: http://codeforces.com/contest/633/problem/H Description Yash is finally ti ...
- Manthan, Codefest 16 D. Fibonacci-ish 暴力
D. Fibonacci-ish 题目连接: http://www.codeforces.com/contest/633/problem/D Description Yash has recently ...
- Manthan, Codefest 16(B--A Trivial Problem)
B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- Manthan, Codefest 16 -C. Spy Syndrome 2
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- Manthan, Codefest 16 -A Ebony and Ivory
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- Manthan, Codefest 16
暴力 A - Ebony and Ivory import java.util.*; import java.io.*; public class Main { public static void ...
- CF Manthan, Codefest 16 G. Yash And Trees 线段树+bitset
题目链接:http://codeforces.com/problemset/problem/633/G 大意是一棵树两种操作,第一种是某一节点子树所有值+v,第二种问子树中节点模m出现了多少种m以内的 ...
- CF #Manthan, Codefest 16 C. Spy Syndrome 2 Trie
题目链接:http://codeforces.com/problemset/problem/633/C 大意就是给个字典和一个字符串,求一个用字典中的单词恰好构成字符串的匹配. 比赛的时候是用AC自动 ...
- CF Manthan, Codefest 16 B. A Trivial Problem
数学技巧真有趣,看出规律就很简单了 wa 题意:给出数k 输出所有阶乘尾数有k个0的数 这题来来回回看了两三遍, 想的方法总觉得会T 后来想想 阶乘 emmm 1*2*3*4*5*6*7*8*9 ...
随机推荐
- Excel-满足指定条件并且包含数字的单元格数目,DCOUNT()
DCOUNT函数 函数名称:DCOUNT 主要功能:返回数据库或列表的列中满足指定条件并且包含数字的单元格数目. 使用格式:DCOUNT(database,field,criteria) 参数说明:D ...
- CSS区分Chrome和Firefox
CSS区分Chrome和FireFox 描述:由于Chrome和Firefox浏览器内核不同,对CSS解析有差别,因此常会有在两个浏览器中显示效果不同的问题出现,解决办法如下: /*Chrome*/ ...
- college-ruled notebook
TBBT.s3.e10: Sheldon: Where's your notebook?Penny: Um, I don't have one.Sheldon: How are you going t ...
- 连接查询条件在on后面和条件在where后面
emp表结构如下: dept表结构如下: 内连接 条件语句放在on 后面和 where 结果对于inner join结果是一样的 但对于left join 结果会产生不一样 这种现象也比较好理解,如果 ...
- mybatis-plus解析
mybatis-plus当用lambda时bean属性不要以is/get/set开头,解析根据字段而不是get/set方法映射
- centos 7 重新获取IP地址
1.安装软件包 dhclient # yum install dhclient 2.释放现有IP # dhclient -r 3.重新获取 # dhclient 4.查看获取到到IP # ip a
- Lombok安装及Spring Boot集成Lombok
文章目录 Lombok有什么用 使用Lombok时需要注意的点 Lombok的安装 spring boot集成Lombok Lombok常用注解 @NonNull @Cleanup @Getter/@ ...
- mybatis中返回自动生成的id
当有时我们插入一条数据时,由于id很可能是自动生成的,如果我们想要返回这条刚插入的id怎么办呢. 在mysql数据中我们可以在insert下添加一个selectKey用以指定返回的类型和值: ...
- Spring DM 2.0 环境配置 解决Log4j问题
搭建 spring dm 2.0 环境出的问题 log4j 的问题解决办法是 一.引入SpringDM2.0的Bundle,最后完成如下图所示:注意:要引入slf4j.api.slf4j.log4j. ...
- OSGi系列 - 使用Eclipse查看Bundle源码
使用Eclipse开发OSGi Bundle时,会发现有很多现成的Bundle可以用.但如何使用这些Bundle呢?除了上网搜索查资料外,阅读这些Bundle的源码也是一个很好的方法. 本文以org. ...