P10095 [ROIR 2023 Day 1] 斐波那契乘积

难度:普及/提高-

题目背景

翻译自 ROIR 2023 D1T2

斐波那契数指斐波那契数列(f0​=1,f1​=1,fi​=fi−2​+fi−1​)中出现的数。

题目描述

给定一个自然数 n,求出将其表示为大于 1 的斐波那契数的乘积的方式数量。

输入格式

第一行一个数 t,表示数据组数。

接下来 t 行,每行输入一个数 n。

输出格式

对于每组测试数据,输出一个数表示答案。

输入输出样例

输入 #1

5
2
7
8
40
64

输出 #1

1
0
2
2
3

说明/提示

样例解释:

  • 2=2。
  • 7 无法被表示为斐波那契乘积。
  • 8=8=2×2×2。
  • 40=5×8=2×2×2×5。
  • 64=8×8=2×2×2×8=2×2×2×2×2×2。

本题使用捆绑测试。

子任务编号 分值 2≤�≤2≤n≤
1 15 100
2 17 10^5
3 9 n 是 2 的整数次幂
4 38 10^9
5 21 10^18

对于所有数据,1≤t≤50,2≤n≤101^8。

 思路

使用dfs搜索表示为大于 1 的斐波那契数的乘积的方式数量。

 完整代码

#include <bits/stdc++.h>
using namespace std;
const int N = 1e18, M = 1e6 + 6;
typedef long long ll;
long long t,len,f[M];
int dfs(long long n, long long id) {
    if (n == 1) return 1;
    if (id == 1) return 0;
    while (n < f[id]) id--;
    ll ans = 0;
    if (n % f[id] == 0) ans += dfs(n / f[id], id);
    return ans + dfs(n, id - 1);
}
int main() {
    cin>>t;
    //freopen("a.in","r",stdin);
    f[0]=1, f[1]=1;
    len=1;
    while (true) {
        f[len+1]=f[len]+f[len-1];
        len++;
        if(f[len]>N) break;
    }
    len--;
    while (t--) {
        long long n;
        cin>>n;
        //freopen("b.in","r",stdin);
        cout<<dfs(n, len)<<endl;
        //freopen("c.out","w",stdout);
    }
    return 0;
}

相关推荐

  1. P10095 [ROIR 2023 Day 1] 乘积

    2024-03-10 00:04:01       68 阅读
  2. 洛谷P10095乘积

    2024-03-10 00:04:01       42 阅读
  3. 2024-03-10 00:04:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 00:04:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 00:04:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 00:04:01       82 阅读
  4. Python语言-面向对象

    2024-03-10 00:04:01       91 阅读

热门阅读

  1. Druid数据库连接池配置

    2024-03-10 00:04:01       47 阅读
  2. 国内用ChatGPT可以吗

    2024-03-10 00:04:01       46 阅读
  3. Xargs命令详解: 构建和执行命令的必备工具

    2024-03-10 00:04:01       49 阅读
  4. 面试经典150题(101-104)

    2024-03-10 00:04:01       44 阅读
  5. 一个简单的HTML 个人网页

    2024-03-10 00:04:01       44 阅读
  6. 【记录31】elementUI el-tree 虚线、右键、拖拽

    2024-03-10 00:04:01       43 阅读
  7. const关键字不同使用场景

    2024-03-10 00:04:01       43 阅读
  8. DOM

    DOM

    2024-03-10 00:04:01      41 阅读