洛谷 U3357 C2-走楼梯
来源:互联网 发布:华润网络 百度国际大厦 编辑:程序博客网 时间:2024/05/29 17:57
题目背景代码
在你成功地解决了上一个问题之后,方方方不禁有些气恼,于是他在楼梯上跳来跳去,想要你求出他跳的方案数。..
题目描述
方方方站在一个n阶楼梯下面,他每次可以往上跳一步或两步,往下跳一步到四步(由于地心引力跳得比较远),而且在往下跳的时候你只能踩在你往上跳时踩过的格子。
现在方方方在楼梯上乱跳,想问他跳到楼梯顶上最后又跳回楼梯下面的方案数mod 2333333。
请注意:针对题目有歧义的情况,这里再说明一下。方方方只能一直向上跳,跳到楼梯最上面,然后再往下跳,跳回楼梯最底下。
输入输出格式
输入格式:
输入一行一个数n。
输出格式:
输出方方方跳回楼梯下面的方案数mod 2333333。
输入输出样例
输入样例#1:
5
输出样例#1:
52
输入样例#2:
7654321
输出样例#2:
451197
输入样例#3:
3
输出样例#3:
8
说明
对于30%的数据,n<=10。
对于100%的数据,1<=n<=10^7。
爆搜只有30
正解是递推 从上向下走也可以看做向上走 方案数是一样的
设当前状态为 f[i]
f[i] 代表第一次 向上走到i 第二次也走到i的方案数
第二次走1步 到i 第一次有1种走法 1
第二次走2步 到i 第一次有2种走法 1 1 -- 2
第二步走3步 到i 第一次有3种走法 1 1 1-- 1 2--2 1
第二步走4步 到i 第一次有5种走法 1 1 1 1--1 2 1--1 1 2--2 1 1--2 2
1 #include <cctype> 2 #include <cstdio> 3 4 typedef long long LL; 5 6 const int MAXN=1e7+10; 7 const int mod=2333333; 8 9 int n;10 11 int f[MAXN];12 13 inline void read(int&x) {14 int f=1;register char c=getchar();15 for(x=0;!isdigit(c);c=='-'&&(f=-1),c=getchar());16 for(;isdigit(c);x=x*10+c-48,c=getchar());17 x=x*f;18 }19 20 int hh() {21 read(n);22 f[1]=1;f[2]=3;f[3]=8;f[4]=22;23 for(int i=5;i<=n;++i) {24 f[i]=f[i-1]+f[i-2]*2+f[i-3]*3+f[i-4]*5;25 while(f[i]>=mod) f[i]-=mod;26 }27 printf("%d\n",f[n]);28 return 0;29 }30 31 int sb=hh();32 int main(int argc,char**argv) {;}
阅读全文
0 0
- 洛谷 U3357 C2-走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯
- 走楼梯问题
- 楼梯的走法
- 走楼梯问题
- SDUT2876_走楼梯(大数)
- Problem 1031 - 走楼梯
- 动态规划走楼梯
- SDUT OJ 走楼梯
- hdu 2041 走楼梯
- #6029. 【雅礼集训 2017 Day1】市场
- #6030. 【雅礼集训 2017 Day1】矩阵
- 自定义MongoDB连接池
- P3014 [USACO11FEB]牛线Cow Line
- 2017-10-15离线赛总结
- 洛谷 U3357 C2-走楼梯
- 1821: [JSOI2010]Group 部落划分 Group
- 洛谷 P3797 妖梦斩木棒
- 1093: [ZJOI2007]最大半连通子图
- QueryDSL的DEMO示例
- 1266: [AHOI2006]上学路线route
- 栈和 队列 和 优先队列的 简单操作(初学者)
- [USACO09DEC]牛收费路径Cow Toll Paths
- HTTP请求行、请求头、请求体详解