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年各大企业校招真题给总结全了.另外还有各大名企 ...
最新文章
- C4D和Redshift:2D矢量到三维渲染 Cinema 4D and Redshift: 2D vector to 3D render
- swift_010(Swift 的可选类型)
- 17、Windows API 图形用户界面(1)
- Android开发之在任意Activity在广点通页面添加自定义布局在穿山甲页面添加任意布局
- java web判断服务器是否是本机
- 百度首页增加了二维码扫描
- 初学Python——字符串相关操作
- 【英语学习】【Daily English】U12 E-World L04 I bought it on a Swiss website
- 分布式数据库中间件–(1) Cobar初始化过程
- 用U盘安装Windows系统操作步骤
- 基于Hive解析AST的模仿sqlFlow无中间表的字段级数据血缘的后端
- 修改UEditor编辑器上传图片大小限制
- 从java9共享内存加载modules说起
- 友盟集成微信授权登录,切换微信账号,登录无法切换微信信息问题
- ios适配暗黑模式-图片、颜色
- 非编码区单核苷酸变异
- IIR数字低通滤波器
- Python学习记录——Python容器:列表、元组、字典与集合(1)
- 微型计算机原理实验二,微机原理实验2
- 大话游戏循环Game Loop——PythonC++