2019校招真题编程(十九)魔法深渊
魔法深渊
- 题目描述
- 我的思路
题目描述
前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧。
由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个被施放了魔法的深渊,月神想要爬上此深渊。
已知深渊有N层台阶构成(1 <= N <= 1000),并且每次月神仅可往上爬2的整数次幂个台阶(1、2、4、…),请你编程告诉月神,月神有多少种方法爬出深渊
输入:输入共有M行,(1<=M<=1000)
第一行输入一个数M表示有多少组测试数据,
接着有M行,每一行都输入一个N表示深渊的台阶数
输出:输出可能的爬出深渊的方式
我的思路
哇,好想那个青蛙跳台阶
- 1个台阶:f(1)=1
- 2个台阶:f(2)=1+1=2
- 3个台阶:f(3)=f(2)+f(1)=3
- 4个台阶:f(4)=f(3)+f(2)+1=6
- 5个台阶:f(5)=f(4)+f(3)+f(1)=10
- 6个台阶:f(6)=f(5)+f(4)+f(2)=18
- 7个台阶:f(7)=f(6)+f(5)+f(3)=31
- 8个台阶:f(8)=f(7)+f(6)+f(4)+1=56
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>using namespace std;bool cmp(pair<int, int>a, pair<int, int>b)
{return a.first<b.first;
}int main()
{int m;cin>>m;vector<int>nums(m, 0);int maxValue = 0;for(int i=0; i<m; i++){cin>>nums[i];maxValue = maxValue>nums[i]?maxValue:nums[i];}vector<long long int>ans(maxValue+1, 0);ans[0]=1; ans[1]=1;if(maxValue>0){ans[2]=2;for(int i=3; i<=maxValue; i++){int j=0;while( pow(2, j) <=i ){ans[i] += ans[i - pow(2, j)];j++;}ans[i]%= 1000000003LL;}}for(int i=0; i<m; i++){cout<<ans[nums[i]]<<endl;}}
运行时间:5ms
占用内存:396k
2019校招真题编程(十九)魔法深渊相关推荐
- 永恒python和深渊_【2019校招真题】魔法深渊(python)
题目描述 前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧. 由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个被施放了魔法的深渊,月神想要爬 ...
- 【网易】牛客网2019校招真题(编程题)
[网易]被3整除 [题解]打表找规律,n为3的倍数和3的倍数余2的都是可以的,3的倍数余1的数是不可以的. 1 #include<bits/stdc++.h> 2 using namesp ...
- 游戏海报——快手2019校招真题——笔试编程C/C++
ヾ(@^▽^@)ノ刷快手,也刷快手笔试题. 题目描述: 小明有26种游戏海报,用小写字母"a"到"z"表示.小明会把游戏海报装订成册(可能有重复的海报),册子可 ...
- 2016校招真题编程练习——微信红包(腾讯)
题目描述 春节期间小明使用微信收到很多个红包,非常开心.在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半.请帮小明找到该红包金额.写出具体算法思路和代码实现,要求算法尽可能高效. ...
- 美团点评2019校招真题——种花
题目描述 公园里有 N 个花园,初始时每个花园里都没有种花,园丁将花园从1到N编号并计划在编号为i的花园里恰好种 A_i 朵花,他每天会选择一个区间[ L,R ]( 1 ≤ L ≤ R ≤ N )并在 ...
- 牛客网——2017校招真题在线编程(pythonC++)
牛客网--2017校招真题在线编程(python&C++) 1.n个数里的最小k个 题目描述 找出n个数里最小的k个 输入描述: 每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n ...
- 200 道算法面试题集锦!Python 实现,含华为、BAT 等校招真题!
点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法. ...
- 拼多多2018年校招真题
拼多多2018年校招真题 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出 ...
- 最新!2016-2019计算机历年校招真题、面经、复习资料总结(11G/2284份文件)
敲黑板!!!全网独一份!!!最新!!!最新!!!!有2019年的资料!!!持续更新中-- 整理了好几天,也在网上买了很多相关资料,终于把2016–2019年各大企业校招真题给总结全了.另外还有各大名企 ...
最新文章
- 1.1初识python
- mysql创建表时显示错误_MYSQL创建表出现错误 ERROR Code 1118如何解决
- hssfworkbook.write 生成文件 数据丢失_电脑文件丢失了,数据恢复我只用这一个软件!...
- vue_axios请求封装、异常拦截统一处理
- 如何在IEDA中连github
- 12.2.PHP7.1 狐教程-偶遇 -【PHP 入口】
- 北邮 形式语言与自动机
- 【资料总结】html开发小实例
- verilog学习笔记——8位数码管驱动设计与验证
- 1330: PIPI的乐高积木
- Java常量池[乐乐独记]
- 360做专业手机电商平台还是有搞头
- ARP Cache Poisoning Attack Lab(SEED实验)
- 读书笔记——漫画中国式项目管理
- 解决Tmux提示的size x*x from a smaller client窗口缩放问题
- python plt图片保存emf类型_如何获得emf/wmf格式的matplotlib图形?
- USB Hub集线控制器芯片DP9254替代AU9254A21
- 一文带你由浅入深地解读 Go Zap 的高性能
- DBeaver安装使用手册
- 常开常闭触点?限位开关?