题目描述
译自 CEOI2018 Day2 T1. Fibonacci Representations
译者为来自 FZYZ OI Group 的
https://loj.ac/user/5517
定义斐波那契数列为:
F1F2Fn=1=2=Fn−1+Fn−2,n≥3
其前几项为 1,2,3,5,8,13,21,…
对一个正整数 p,令 X(p) 表示把 p 表示为若干个不同的斐波那契数的和的表示法数,两种表示法不同当且仅当有一个斐波那契数是其中一个的项,而不是另一个的项。
给定一个 n 项正整数序列 a1,a2,…,an,对于其非空前缀 a1,a2,…,ak,定义 pk=Fa1+Fa2+⋯+Fak。
请你对于 k=1,2,…,n,求出 X(pk)mod(109+7)。
输入格式
第一行一个整数 n (1≤n≤100000)。
第二行 n 个整数 a1,a2,…,an (1≤ai≤109)。
输出格式
n 行,第 k 行为 X(pk)mod(109+7)。
样例
4
4 1 1 5
2
2
1
2
p1p2p3p4=F4=5=F4+F1=5+1=6= F4+F1+F1=5+1+1=7=F4+F1+F1+F5=5+1+1+8=15
5 有两种表示法:F2+F3=2+3 和 F4=5. 因此 X(p1)=2;
6 有两种表示法:1+5=1+2+3;
7 只有一种表示法:2+5;
15 有两种表示法:2+13=2+5+8。
数据范围与提示
子任务 |
约束 |
分值 |
1 |
n,ai≤15 |
5 |
2 |
n,ai≤100 |
20 |
3 |
n≤100,ai 是不同的完全平方数 |
15 |
4 |
n≤100 |
10 |
5 |
ai 是不同的偶数 |
15 |
6 |
无特殊约束 |
35 |