1 条题解
-
0
题目分析
第一眼:上楼梯改版谁不会啊,看我直接用数组记
接着看:不怼!出题人把范围设成了,数组空间炸了,肿么办呢?这个时候我们回想一下下楼梯的推理过程,第三级楼梯的答案由第二级和第一级的答案相加得到,而第四级又由第二级和第三级答案累加得到.
聪明的你会发现:好像求第级台阶的答案时只用到了得到,其余的~数直接没用了!
类比到这题会发现:,我们只用这四个数就可以一直往后推了,空间问题解决了,我们成功将一个冗长数组变成了四个变量!注意
- 本题考验代码习惯,必须用const常量来定义模数
- 既然是亮亮学长了,那都LL你还不开long long?
Code
#include<bits/stdc++.h> #define int long long //十年OI一场空,___________ using namespace std; const int mod=1e10+7; //const定义模数 int n; int a=0,b=0,c=0,d=1; signed main() { cin>>n; for(int i=1;i<=n;i++){ a=b;b=c;c=d; //滚动求答案 d=(a+b+c)%mod; } cout<<d%mod; //随时取模,养成好习惯 return 0; }
- 1
信息
- ID
- 1053
- 提交时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 320
- 已通过
- 10
- 上传者
冀公网安备13098402000493号