A1-2017级算法第一次上机练习赛 C AlvinZH去图书馆

题目描述

AlvinZH最近在看《冰与火之歌》系列,这天,他又看完了一本书,于是决定去图书馆再借一本。大家知道,在去图书馆的路上,有一条"扯蛋路"。大概是这个样子的(秀一波拍照技术):

AlvinZH从第一块石砖出发,接下来他可以走到第二块石砖或第三块石砖,有时候走的很不爽,甚至可以直接跨过两个石砖,到达第四块石砖,但是不能连续两次这种操作,因为这样。。。对身体不好。现在假设有一条含n块石砖的小路,请你计算出AlvinZH从第一块石砖出发有多少种安全的走法。

输入

输入将由多组测试数据组成,以EOF结尾。

每组数据只有一行,为小路的总石砖数n(0<n≤50)。

输出

对于每组数据,输出一行,为走过小路的方法数。

输入样例

1

2

3

输出样例

1

2

4

样例解释

1:一步走完;
2:先走到2再走完,或者直接走完;
3:111或12或21或3。

思路

原文地址:https://www.cnblogs.com/zjsyzmx0527/p/10182575.html

时间: 2024-10-04 00:00:03

A1-2017级算法第一次上机练习赛 C AlvinZH去图书馆的相关文章

2017级算法模拟上机准备篇(一)

回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序  STL:sort() 简单题--I wanna be the 升级者Ⅱ 二分 :STL : lower_bound () 简单题--Railway Station 数据结构 : 栈操作模拟 简单题--我在东北玩泥巴:博弈论 中等题--零崎的考试:DP 中等题--伪流水线调度:费用流 网络流 中等题--果园连连看:BFS 图论 难题--线段和直线:

2017级算法模拟上机准备篇(归并排序)

归并排序是分治法的一个最经典也是最基础的应用 Divide And Conquer的思想很重要 归并排序的的Divide采用了简单的二分 Conquer采用的是将两个有序数组合并为一个有序数组. 2014-Inverse number:Reborn 逆序数求解 #include <algorithm> #include <iostream> #include <cstring> using namespace std; const int maxlen=1e6 + 10

2017级算法模拟上机准备篇(序列DP 进阶_1)

进阶版的序列DP 从一道题的优化开始 ModricWang的序列问题 题目描述:给定一个序列,求出这个序列中的最长上升子序列的长度. 这道题的本质还是求解一个最长上升子序列的问题 相对与之前提到过的O(n^2)的算法 我们可以重新整理思路 用O(nlogn)的思路来写,用贪心和二分优化之前的算法 我们设置新的DP数组//dp[i]代表的是当前长度为i的上升子序列的末尾元素的大小 状态转移方程为如果dp[len] < ar[i] 那么就将数ar[i]加到dp数组尾部. 反之,说明可以继续优化,显然

P1-2017级算法第一次上机 A 水水的斐波那契数列

题目描述 相信大家都学过斐波那契数列,虽然很简单,但是斐波那契数列却是很重要的哦,那么让我们来复习一下斐波那契数列吧! 输入 多组数据输入 每行一个整数n (0<n<=30) 输出 对于每组数据,输出一行,为斐波那契数列第n 项的值 输入样例 1 2 3 4 输出样例 1 1 2 3 思路 用一个一维数组f(n)来表示斐波那契数列第n项的值. 则根据定义,后一项等于前两项之和,很容易得到:f(n) = f(n-1) + f(n-2). 有两种做法,递归和循环. 虽然很多人都说递归好理解,但是作

P1-2017级算法第一次上机 G SkyLee在GameStop

题目描述 SkyLee有一天逛街的时候看到一家新开业的GameStop,里面卖各种各样的游戏. 商店里所有的游戏都按游戏名的字典序从小到大排列好了,小的在里面,大的在外面. SkyLee想要把所有的游戏都试玩(买不起游戏只能看看),但是有些问题: 1.游戏只能从展示架的一侧拿出来 2.SkyLee只能拿1个游戏试玩 3.为了不被商店老板发现蹊跷,SkyLee把游戏光盘放回去的时候总要保证每个展示架的游戏仍然按照字典序从小到大排列(小的在里面,大的在外面) 4.SkyLee虽然没钱但是不可能偷游戏

2016级算法期末模拟练习赛-C.AlvinZH的青春记忆II

1084 AlvinZH的青春记忆II 思路 中等题,二分. 简化题意,一列数字,每秒会自动-1,特殊操作可以使一个数在1s内-k,问这些数都减至0需要多久. 答案肯定在[1,xMax]之间,采用二分的方法找到最小时间. 如何判断一个时间值是否符合要求呢?对于≤mid的数,自然消减就好,对于>mid的数,需要特殊操作,设特殊操作次数为s,则有 \(k*s + (mid-s) = Xi\),解得 \(s = (X[i]-mid) / (k-1)\). 分析 注意三个问题, 第一,除0问题,k-1可

2016级算法期末模拟练习赛-D.AlvinZH的序列问题

1111 AlvinZH的序列问题 思路 中等题,动态规划. 简化题意,. 坑点一:二维int数组MLE,明显会超过内存限制,由于\(n\)最大为1e4,那么我们的dp数组最大也是1e4,考虑使用short int. 坑点而:被题目开始的子序列描述误导,题目没有要求等差数列中数字顺序和输入顺序一致,所以可以先将数组排序. dp[i][j]:以A[i].A[j]开头的等差数列(可保证i<j).初始化值为2. 状态转移:固定j,i与k分别向两边扩展,当2*A[j]=A[i]+A[k]时,说明A[i]

2016级算法期末模拟练习赛-B.AlvinZH的青春记忆I

1083 AlvinZH的青春记忆I 思路 中等题,动态规划. 简化题意,一个环上取数,数不可相邻,取取得数之和最大值. 环不好表示,可以解开变成一列数,那么答案应为下列两种情况较大者. ①:取第一个点,可取得最大价值为宝物[1,n-1]的最大价值. ②:不取第一个点,可取得最大价值为宝物[2,n]的最大价值. 动态规划,状态转移方程:\(dp[i] = max(dp[i-1], dp[i - 2] + V[i])\) 分析 时间复杂度:\(O(n)\). 参考代码 // // Created

2017级算法第三次上机-B.SkyLee逛漫展

ALS 一道动态规划最经典的题目 动态规划实质上其实就是表格法,利用表格来记录每个子问题的解. DP所关注的其实是递归 即一个较小问题的解和一个较大问题的状态转移问题. 其次还要关注的其实还是是初始值的设立,这个决定了后续的递推能否顺利的进行. 还有要思考好dp数组所代表的具体的含义 这样在状态转移的过程中 也可以好一点理解. #include <iostream> #include <algorithm> #include <cstring> using namesp