一,题目

链接:Nonfibonacci numbers - Gym 102439H - Virtual Judge (csgrandeur.cn)

二,思路

1,从1到n找到所有满足其数位上的子序列不是斐波那契数列里的数,显然,找到一个数,而且这个数的子序列是斐波那契的数,这种操作正常人是不可能会去做的,毕竟n等于1e18,所以有什么诀窍呢,遇事不决先打表,下面是从小到大的一百个斐波那契数列(包括因超过64bit位而输出出不正确的数),然后你会惊奇的发现,每个数的数位肯定包含1,2,3,5,8其中一个数,所以我们只要判断一个数的数位上包不包括1,2,3,5,8就行了,简单吧?

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
2971215073
4807526976
7778742049
12586269025
20365011074
32951280099
53316291173
86267571272
139583862445
225851433717
365435296162
591286729879
956722026041
1548008755920
2504730781961
4052739537881
6557470319842
10610209857723
17167680177565
27777890035288
44945570212853
72723460248141
117669030460994
190392490709135
308061521170129
498454011879264
806515533049393
1304969544928657
2111485077978050
3416454622906707
5527939700884757
8944394323791464
14472334024676221
23416728348467685
37889062373143906
61305790721611591
99194853094755497
160500643816367088
259695496911122585
420196140727489673
679891637638612258
1100087778366101931
1779979416004714189
2880067194370816120
4660046610375530309
7540113804746346429
-6246583658587674878
1293530146158671551
-4953053512429003327
-3659523366270331776
-8612576878699335103
6174643828739884737
-2437933049959450366

三,代码

#define _CRT_SECURE_NO_WARNINGS 1
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<math.h>
#include<cmath>
#include<string>
#include<unordered_map>
#include<set>
#include<vector>
#include<queue>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
#define endl '\n'
#define int long long
int arr[100] = { 0 }, book[100][10000] = { 0 };
int dfs(int pos, int limit, int lead, int sum)
{if (pos == 0) return 1;if (!limit && !lead && book[pos][sum] != -1) return book[pos][sum];int maxn = limit ? arr[pos] : 9, ans = 0;for (int i = 0; i <= maxn; ++i){if (i == 1 || i == 2 || i == 3 || i == 5 || i == 8) continue;ans += dfs(pos - 1, limit && i == maxn, lead && i == 0, sum + i);}if (!limit && !lead) book[pos][sum] = ans;return ans;
}
int handle(int num)
{memset(book, -1, sizeof(book));int cnt = 0;while (num) arr[++cnt] = num % 10, num /= 10;return dfs(cnt, 1, 1, 0);
}
signed main()
{ios::sync_with_stdio(0); cout.tie(0); cin.tie(0);int t;cin >> t;while (t--){int num;cin >> num;cout << handle(num) << endl;}return 0;
}

Nonfibonacci numbers相关推荐

  1. 用Excel格式舍入数字

    Did you know that Excel limits the number of numbers that appear in a cell, in General format? I dis ...

  2. 如何快速修改文件重命名命名_更改Excel命名范围的地址

    如何快速修改文件重命名命名 In Excel, you can give a name to a range of cells, then use that name in a formula, or ...

  3. 突出显示中奖彩票号码

    No, I've never won the lottery, but that's probably because I don't buy tickets! Your odds of winnin ...

  4. usaco ★Humble Numbers 丑数

    ★Humble Numbers 丑数 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于 S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p ...

  5. Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers

    參考:http://www.cnblogs.com/chanme/p/3843859.html 然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j<K ...

  6. iwork11旗舰版 linux,苹果 iWork 11 套件来了,Pages/Numbers/Keynote iOS/macOS 版大升级

    IT之家3月24日消息 苹果今天专为 iOS 和 macOS 设备设计的 iWork 应用套件更新到了版本 11,引入了许多新功能和调整,以改善其功能. IT之家获悉,在 iOS 系统上,Pages. ...

  7. pandas使用extract函数根据正则表达式从dataframe指定数据列的字符串中抽取出数字并生成新的数据列(extract numbers from column)

    pandas使用extract函数根据正则表达式从dataframe指定数据列的字符串中抽取出数字并生成新的数据列(extract numbers from column and generate n ...

  8. pandas创建内容全是0的dataframe、pandas基于随机整数、随机浮点数创建dataframe(random numbers)

    pandas创建内容全是0的dataframe.pandas基于随机整数.随机浮点数创建dataframe(random numbers) 目录 pandas创建内容全是0的dataframe.pan ...

  9. LeetCode 421. Maximum XOR of Two Numbers in an Array--Python解法

    LeetCode 421. Maximum XOR of Two Numbers in an Array–C++,Python解法 LeetCode题解专栏:LeetCode题解 我做的所有的Leet ...

最新文章

  1. Javascript闭包和闭包的几种写法及用途
  2. Windows Server 2012 RDS系列:虚拟桌面化(5)
  3. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 代理 Activity 组件开发 )
  4. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子
  5. 【数据结构与算法】之深入解析“最小覆盖子串”的求解思路与算法示例
  6. POJ - 3714 Raid(平面最近点对模板题,几何)
  7. 微信搜一搜在线检索技术演进复盘
  8. 计算机组成原理--数的表示及计算
  9. 【CodeChef - CLIQUED 】Bear and Clique Distances(建图,缩点技巧,思维)
  10. linux进程cpu时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
  11. SpringMVC多拦截器的执行
  12. [编程题] 被3整除
  13. MongoDB的web可视化管理工具
  14. 10负3次方计算机语言,10的负3次方等于多少?
  15. pillow软件 Android,Pillow自动睡眠追踪
  16. 关于STM32的AD采样串口输出
  17. 易经读书笔记16 雷地豫
  18. 阵列信号处理笔记-波达方向DOA-子空间方法
  19. 跨考计算机者艰难的2019自白
  20. [BJDCTF2020]Mark loves cat 1——(超详细 三种方法)

热门文章

  1. 啊啊啊啊啊啊噢噢噢噢
  2. 入耳式蓝牙耳机哪款音质好?入耳式降噪蓝牙耳音质排行榜
  3. Network In Network(精读)
  4. RewriteCond与RewriteRule用法
  5. css可以做什么小船,基于css3小船水面游动动画特效
  6. 获取 当前时间的前五天凌晨0点的时间
  7. 华为OJ训练之0034-170112-密码强度等级
  8. 在wsl下开发T113的主线linux(2)-编译awboot
  9. Linux建立软连接
  10. 抖音直播间权重怎么提高?抖音直播间权重低怎么办