题解 P1255 【数楼梯】】的更多相关文章

P1255 数楼梯 题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例#1: 复制 4 输出样例#1: 复制 5 说明 用递归会太慢,需用递推 (60% N<=50 ,100% N<=5000) 思路:数学+高精 #include<cstdio> #include<cstring> #include<iostream&…
走楼梯走一步还是两步的问题其实就是斐波那契数列(F(n)=F(n-1)+F(n-2),而在int型范围内存在45个相异的数,题干说明楼梯总数可以为5000,则考虑使用字符串进行存储.当两个数相加产生进位时需传递给下一位.如果是最高位的话,还需考虑拓展一位储存. string Fino(string a,string b) { string c; ; ; ; &&j>=;i--,j--) //注意此处c是字符串类型,每次循环后会直接在后面加上一个数 { c+=(a[i]+b[j]-+x…
题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例#1: 4 输出样例#1: 5 说明 用递归会太慢,需用递推 (60% N<=50 ,100% N<=5000) 也是曾经做过的一道题,单纯复习一下高精斐波那契模板 #include<cstdio> #include<cstdlib> #include<cstring&…
题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入格式 一个数字,楼梯数. 输出格式 走的方式几种. 输入输出样例 输入 #1 4 输出 #1 5 说明/提示 60% N<=50100% N<=5000) 废话不说,先上代码.(亲测无毒,放心食用) a = [] for i in range(10000): a.append(0) a[1]=1 a[2]=2 n = int(input()) for i in range(3,n+1):…
题目描述   楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶.   编一个程序,计算共有多少种不同的走法. 分析与代码   走n阶楼梯,无论是走一次走1阶还是2阶,总得迈出一步,   所以求n阶楼梯的走法数F(n),可以看成是走F(n-1)和F(n-2)   的和.   而当楼梯只剩1阶时,就只有1种走法了:        剩2阶时,可以选择1阶阶走,也可以直接走2阶,        所以是2种走法:   以此得出边界条件:n1 和 n2,可以很愉快的写出以下递归代码 #include<ios…
P1255 数楼梯 题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例#1: 4 输出样例#1: 5 说明 用递归会太慢,需用递推 (60% N<=50 ,100% N<=5000) 思路: 题目中说明中提及递归太慢,所以用递推做的.但是又因为范围是到5000,范围太大,所以需要用高精来做. 坑点: 斐波那契第0项的值为0,是根据题目的意思来判断的…
回文数 对于一个自然数n,若将n的各位数字反向排列所得的数n1与n相等,则称n为回文数,例如2332. 若给定一个N( 2<=N<=16)进制数M(M的长度在一百位以内),如果M不是回文数,可以对其进行N进制加法,最终得到回文数. 例如对于十进制数79 STEP1 : 79 + 97 = 176 STEP2 : 176 + 671 = 847 STEP3 : 847 + 748 = 1595 STEP4 : 1595 +5951 = 7546 STEP5 : 7546 + 6457 = 140…
题目链接 好吧,承认python 轻松水过 代码奉上: n = int(input()) #定义,输入 a=1 #初始的变量赋值 b=1 n-=1 #我的毒瘤的循环不得不加上这句话 if n > 0 : #判断,第6,7很坑的 while n>0 : c=a+b a=b b=c n-=1 print(b) elif n == 0 : #判断边界 print(a) else : a-=1 #判断边界 print(a) #程序拜拜…
[SDOI2014]数数 这题的前置知识是AC自动机和dp,前置题目是 [JSOI2007]文本生成器,前置题目我写的题解 题解-[JSOI2007]文本生成器.我的讲解假设你做过上面那道题. 这题比上面那题多个条件,我因此多调了 \(3\) 个小时.多的条件:答案要不大于整数 \(n\).所以AC自动机部分同上,改变dp部分. 解:\(dp[i][j][k]\) 表示文本串(幸运数)长度为 \(i\),结尾是AC自动机上的节点 \(j\),\(k\) 表示这个文本串下一个字符是否受 \(n\)…
思路:BigInteger 四杀! 简单递推,注意long会超范围 题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例#1: 复制 4 输出样例#1: 复制 5 说明 用递归会太慢,需用递推 (60% N<=50 ,100% N<=5000) import java.math.BigInteger; import java.util.Scanner…
假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶. 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶. 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶 Code class Solution { public: int climb…
小 C 的兔子不是雪白的,而是五彩缤纷的. 题目 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不同的兔子可能有 相同的颜色.小 C 把她标号从 1 到 n 的 n只兔子排成长长的一排,来给他们喂胡萝卜吃. 排列完成后,第 i 只兔子的颜色是 ai. 俗话说得好,"萝卜青菜,各有所爱".小 C 发现,不同颜色的兔子可能有对胡萝卜的 不同偏好.比如,银色的兔子最喜欢吃金色的胡萝卜,金色的兔子更喜欢吃胡萝卜叶子,而 绿色的兔子却喜欢吃酸一点的胡萝卜--为了满足兔…
2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. 您可以假设除了数字 0 之外,这两个数都不会以 0 开头. . 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路 简单的链表问题,遍历链表,设置合适的跳出条件…
这道题的关键是利用Floyd算法的性质求转换方案,算是Floyd的一个变形,具体可以看代码. 题目 #include<bits/stdc++.h> using namespace std; string n; int k; ][];//表示数字之间是否能转换 inline void FLOYD() { /* 这里用Floyd算法枚举所有数对及中间的切点 如果i能到k而k能到j 则说明i能到j */ ;k<;k++){ ;i<;i++){ ;j<;j++){ ; } } } }…
count 洛谷p1836 题目描述 一本书的页码是从 1-n 编号的连续整数: 1, 2, 3, ... , n.请你求出全部页码中 所有单个数字的和,例如第 123 页,它的和就是 1+2+3=6. 输入输出 输入 一行为 n(1 <= n <= 10^9). 输出 一行,代表所有单个数字的和. 样例 样例输入 3456789 样例输出 96342015 说明 时间限制 1s/testcase 空间限制 32MB 思路 鉴于 n 可以达到 10^9,直接模拟是不可取的 逐位递推,发现规律.…
1. P1088 火星人 利用STL中的next_permutation();函数求一种排列的下一种排列,循环m次即为答案.(STL大法好~~C++是世界上最好的语言~~逃 #include <cstdio> #include <algorithm> using namespace std; ; int n, m, s[MAXN]; int main() { scanf("%d%d", &n, &m); ; i <= n - ; ++i)…
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \(T_1=G(V, E_1)\) 和 \(T_2=G(V, E_2)\),定义这两棵树的权值 \(F(E_1, E_2)\) 为 \(y\) 的 \(G'=(V,E_1\cap E_2)\) 的联通块个数次方. 即 \(F(E_1, E_2) = y^{n - |E_1\cap E_2|}\)(因为…
只包含因子2 3 5的数 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 Description K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = 13,S中 >= 13的最小的数是15,所以输出15. Input 第1行:一个数T,表示后面用作输入测试…
题目大意   求在一张有\(m\)条边无向连通图中,点\(s\)到点\(t\)的经过\(k\)条边的最短路(\(1 \leq m \leq 100\),\(1 \leq k \leq 10^6\)).   题解   边数\(m\)很小,显然点数\(n\)也很小,不超过\(200\),我们可以先离散化处理.   我们可以得到\(n\)个点之间的邻接矩阵,其中矩阵中的\(a[i][j]\)就相当于点\(i\)到点\(j\)的经过\(1\)条边的最短路.   此时我们设\(dp[i][j][k']\)…
快要考试了我还是这么菜. 已经没有心思维护我的博客了.开一篇博文吧.可能会记得很乱. 这也许是我OI生涯的最后一篇博文了?? 肯定很长很长. 不可能的.谁知道什么时候我心态恢复就把上面两句话删掉开始在博客里各种胡咧咧了. 好,我心态恢复了.我要写日记了hhh 「$idea$」维护凸包 临考前才学必定致命. 主要因为昨天考了一套题,T1是凸包.%%%$OOO$李超线段树怒切T1. 我要澄清一下,关于$OOO$大神在李超线段树的学习笔记中提到本人, 本人对此严正声明:我不会李超线段树.我只是颓废,大…
问题: 方 时间限制: 2 Sec  内存限制: 256 MB 题面 题目描述 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形 上帝把我们派到了一个有N行M列的方格图上,图上一共有(N+1)×(M+1)个格点,我们需要做的就是找出这些格点形成了多少个正方形(换句话说,正方形的四个顶点都是格点).但是这个问题对于我们来说太难了,因为点数太多 了,所以上帝删掉了这(N+1)×(M+1)中的K个点.既然点变少了,问题也就变简单了,那么这个时候这些格…
链表 单链表:链表中的每个元素实际上是一个单独的对象,而所有对象都通过每个元素的引用字段链接在一起. 双链表:与单链表不同的是,双链表的每个节点都含有两个引用字段. 链表优点 灵活分配内存空间 能在O(1)时间内删除或者添加元素(单链表前提是元素的前一个元素已知,双链表前提是前后元素已知) 缺点 查询一个元素需要O(n)时间(从头根据引用找到下一个节点) 解题技巧 利用快慢指针(有时候需要用到三个指针)(例如:链表翻转,寻找倒数第k个元素,寻找链表中间位置的元素,判断链表是否有环) 构建一个虚假…
题意 求节点数为\(n\)的有根树期望的叶子结点数.(\(n \le 10^9\)) 分析 神题就打表找规律.. 题解 方案数就是卡特兰数,$h_0=1, h_n = \sum_{i=0}^{n-1} h_i h_{n-1-i} \(. 设叶子数量和为\)f_n\(,则得到\)f_n = 2 \sum_{i=0}^{n-1} f_i h_{n-1-i}$ 设\(H(x)\)表示\(h_n\)的母函数,\(F(x)\)表示\(f_n\)的母函数 容易得到:\[H(x) = x H^2(x) + 1…
A. New Year and Days 题目连接: http://www.codeforces.com/contest/611/problem/A Description Today is Wednesday, the third day of the week. What's more interesting is that tomorrow is the last day of the year 2015. Limak is a little polar bear. He enjoyed…
A. Two Bases Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/602/problem/A Description After seeing the "ALL YOUR BASE ARE BELONG TO US" meme for the first time, numbers X and Y realised that they have different bases,…
第一天 基础算法&&数学 day1难度测试 如果要用一个词来形容上午的测试,那真是体无完肤.  成绩: 题目 成绩 评价 T1 50 一般 T2 10 大失所望 T3 0 差 基础算法 递推 :指通过观察.归纳,发现较大规模问题和较小规模问题之间的关系,用一些数学公式表达出来,在一些教材中,也称为计数DP.递推的模型最主要有:斐波那契数列,卡特兰数,bell数,错排等等. 递归 :所谓递归,是指函数"自己调用自己"的一种编程方法,在解决一个问题时,如果发现问题能拆解为一…
题面 题目描述 给定含n个整数的数组a. 规定数x,y的合并为xy.如:数12与数3456的合并为数123456. 有数组中的位置对(i,j)(i≠j),计算使ai,aj的合并能被k整除的位置对数量. 输入 第一行输入整数n,k (1≤n≤2*10^5,2≤k≤10^9) 第二行输入含n个整数的数组a1,a2,a3,...,an (1≤ai≤10^9) 输出 输出位置对(i,j)的数量,使ai,aj的合并能被k整除 样例输入1 6 11 45 1 10 12 11 7 样例输出1 7 样例输入2…
How Many Triangles 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5784 Description Alice has n points in two-dimensional plane. She wants to know how many different acute triangles they can form. Two triangles are considered different if they differ…
F. Four Divisors 题目连接: http://www.codeforces.com/contest/665/problem/F Description If an integer a is divisible by another integer b, then b is called the divisor of a. For example: 12 has positive 6 divisors. They are 1, 2, 3, 4, 6 and 12. Let's def…