刷题记录:牛客NC14975方块与收纳盒
传送门:牛客
现在有一个大小n*1的收纳盒,我们手里有无数个大小为1*1和2*1的小方块,我们需要用这些方块填满收纳盒,请问我
们有多少种不同的方法填满这个收纳盒
输入;
3
1
2
4
输出:
1
2
5
这道题如果熟悉一些数学题的话就会看出是一道经典的走楼梯的题目,有n阶楼梯,一次能走1格或者两格,问走完楼梯有几种方法,答案是一个斐波那契数列(如果不清楚,不要慌,下面将介绍手推的过程)
我们假设现在走完了k阶楼梯(即站在第k阶楼梯上),设此时到达k阶楼梯的方法数为f(n)
种,我们现在想一下,第k阶楼梯我们是怎么走上去的,肯定是从第k-1
或者第k-2
阶楼梯上走上去的对吧,那我们现在的f(n)
不就是k-1处的方法数加上k-2处的方法数吗(因为k-1,和k-2处分别只要走上一步,中途是没有其它步骤的)可能会有人有疑问,k-2到k不是也有两种方案吗,可以走一格和两格,emmm,因为此时k-2走一格的方法已经包含在k-1走一格的方法里了,k-2走一格不是刚好是k-1处吗
所以我们得到一个递推方程,此时我们就可以解决这个问题了:
f[n]=f[n-1]+f[n-2]
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <stack>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define root 1,n,1
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
inline ll read() {ll x=0,w=1;char ch=getchar();for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') w=-1;for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';return x*w;
}
#define maxn 1000000
int f[100];
int main() {int T;T=read();f[1]=1;f[2]=2;for(int i=3;i<=100;i++) f[i]=f[i-1]+f[i-2];while(T--) {int a;a=read();printf("%d\n",f[a]);}return 0;
}
刷题记录:牛客NC14975方块与收纳盒相关推荐
- 刷题记录:牛客NC24608[USACO 2011 Ope S]Learning Languages
传送门:牛客 题目描述: [USACO11OPEN]Learning Languages S 农夫约翰的 N ( 2 < = N < = 10 , 000 ) N(2<=N<= ...
- 刷题记录:牛客NC16129小小粉刷匠
传送门:牛客 题目描述: "lalala,我是一个快乐的粉刷匠",小名一边快活地唱着歌,一边开心地刷着墙",兴致突然被打断,"小名,你今天如果刷不 完这一栋楼的 ...
- 刷题记录:牛客NC17889新建 Microsoft Office Word 文档
传送门:牛客 题目描述: CSL正在学习<计算机办公自动化>文件的建立与删除. CSL发现,当他新建一个word文档时,会得到一个名为"新建 Microsoft Office W ...
- 刷题记录:牛客NC17193简单瞎搞题
传送门;牛客 题目描述: 一共有 n个数,第 i 个数是 xi xi 可以取 [ l i , r i ] [li , ri] [li,ri] 中任意的一个值. 设 S = ∑ x i 2 S = \s ...
- 刷题记录:牛客NC16122郊区春游
传送门:牛客 题目描述: 今天春天铁子的班上组织了一场春游,在铁子的城市里有n个郊区和m条无向道路,第i条道路连接郊区Ai和Bi, 路费是Ci.经过铁子和顺溜的提议,他们决定去其中的R个郊区玩耍(不考 ...
- 刷题记录:牛客NC24083Greedy Gift Takers
传送门:牛客 题目描述 Farmer John's nemesis, Farmer Nhoj, has NNN cows (1≤N≤1051 \leq N \leq 10^51≤N≤105), con ...
- 刷题记录:牛客NC20811蓝魔法师
传送门:牛客 题目描述: "你,你认错人了.我真的,真的不是食人魔."--蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不 同当且仅当存在 ...
- 刷题记录:牛客NC20875舔狗舔到最后一无所有
传送门:牛客 题目描述: 作为队伍的核心,forever97很受另外两个队友的尊敬. Trote_w每天都要请forever97吃外卖,但很不幸的是宇宙中心forever97所在的学校周围只有3家fo ...
- 刷题记录:牛客NC15162小H的询问
传送门:牛客 题目描述: 小H给你一个数组{a},要求支持以下两种操作: 1. 0 l r(1<=l<=r<=n),询问区间[l,r]中权值和最大的有效子区间的权值和,一个子区间被认 ...
最新文章
- 表格转化为Latex代码
- 共用体和枚举,写写意思下
- 在Fedora8上安装MySQL5.0.45的过程
- 双风扇安装图解_汽车灯光标志图解,汽车灯光标志大全图解
- mysql数据库连接时区设置_springboot 连接数据库之时区设置
- 小甲鱼OD学习第18讲
- CCCC-GPLT L1-035. 情人节 团体程序设计天梯赛
- RHCS集群 切换时defunct僵尸进程解决方案
- SI24R1可以替代NRF24L01P软件硬件DIY兼容成功
- u盘server2012服务器系统安装,如何安装原版Windows server 2012?U盘安装原版Windows server 2012方法...
- C++ 语法篇之 static 用法
- npm run build: rimraf: command not found
- guitar chord html5,App Store 上的“吉他和弦(基本): GUITAR CHORD”
- bpmn不带网关的流程
- 万向节死锁的简易理解
- 神奇的bug之DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP自动更新失败
- 数学物理方程学习笔记1
- msm8953 android7.1 配置笔记
- 2021-08-14c++面向对象的三大特性之二——继承
- python通过手机号(批量)解析出归属地、运营商、邮编、区号
热门文章
- iPhone1.1.3固件jailbreak详细操作教程
- Electronic Commerce_ywyuan_新浪博客
- C语言带参数的回调函数怎么传参,C语言如何实现回调函数
- 程序员真的随便月入过万?
- c语言iomanip头文件的作用,#includeiomanip.h在C语言中代表什么
- Qt5之 简单的日志记录工具类
- mybatis+atomikos出现invalid bound statement (not found)
- PowerBuilder学习笔记(运算符和表达式)
- Xmouse中文安装教程
- 第五章 有关IP协议的技术