CF126D.Fibonacci Sums

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Fibonacci numbers have the following form:

_F_1 = 1,

_F_2 = 2,

F__i = F__i - 1 + F__i - 2, i > 2.

Let's consider some non-empty set S = {_s_1, _s_2, ..., s__k}, consisting of different Fibonacci numbers. Let's find the sum of values of this set's elements:

Let's call the set S a number n's decomposition into Fibonacci sum.

It's easy to see that several numbers have several decompositions into Fibonacci sum. For example, for 13 we have 13, 5 + 8, 2 + 3 + 8 — three decompositions, and for 16: 3 + 13, 1 + 2 + 13, 3 + 5 + 8, 1 + 2 + 5 + 8 — four decompositions.

By the given number n determine the number of its possible different decompositions into Fibonacci sum.

斐波那契数具有如下形式:

F1=1F_1 = 1,
F2=2F_2 = 2,
Fi=Fi−1+Fi−2F_i = F_{i-1} + F_{i-2},其中 i>2i > 2。

考虑某个非空集合 S={s1,s2,…,sk}S = \{s_1, s_2, \dots, s_k\},其元素均为互不相同的斐波那契数。我们计算该集合中所有元素的和:

我们将集合 SS 称为数 nn 的一个斐波那契和分解(Fibonacci sum decomposition)。

容易看出,某些数存在多个不同的斐波那契和分解。例如,对于 1313,有 1313、5+85 + 8、2+3+82 + 3 + 8 这三种分解;而对于 1616,则有 3+133 + 13、1+2+131 + 2 + 13、3+5+83 + 5 + 8、1+2+5+81 + 2 + 5 + 8 这四种分解。

给定正整数 nn,请计算其可能的不同斐波那契和分解的个数。

输入格式

The first line contains an integer t — the number of tests (1 ≤ t ≤ 105). Each of the following t lines contains one test.

Each test is an integer n (1 ≤ n ≤ 1018).

Please do not use the %lld specificator to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specificator.

第一行包含一个整数 tt —— 测试用例的数量(1 ≤ t ≤ 1051 \leq t \leq 10^5)。接下来的 tt 行,每行包含一个测试用例。

每个测试用例是一个整数 nn(1 ≤ n ≤ 10181 \leq n \leq 10^{18})。

请勿在 C++ 中使用 %lld 格式说明符来读取或写入 64 位整数。推荐使用 cin、cout 流,或 %I64d 格式说明符。

输出格式

For each input data test print a single number on a single line — the answer to the problem.

对每组输入数据测试,在单独一行上输出一个数字——即该问题的答案。

输入输出样例

  • 输入#1

    2
    13
    16

    输出#1

    3
    4

说明/提示

Two decompositions are different if there exists a number that is contained in the first decomposition, but is not contained in the second one. Decompositions that differ only in the order of summands are considered equal.

如果存在一个数,它属于第一种分解但不属于第二种分解,则称这两种分解不同。仅加数顺序不同的分解被视为相同。

输入解题思路,AI测评打分。不知道怎么写?

首页