1196:踩方格

简介: 1196:踩方格

1196:踩方格

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:

a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;

b、走过的格子立即塌陷无法再走第二次;

c、只能向北、东、西三个方向走;

请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

【输入】

允许在方格上行走的步数n(n≤20)。

【输出】

计算出的方案数量。

【输入样例】

2

【输出样例】

7

【来源】

No

1. //题解
2. //l[i]表示最后一步向左走到达第i个格,那么它上一格不能是从右边走得到,
3. //r[i]表示最后一步向右走到达第i个格,那么它上一格不能是从左边走得到,
4. //u[i]表示最后一步先上走到达第i个格;
5. #include<bits/stdc++.h> 
6. using namespace std;
7. int l[22],r[22],u[22];
8. int main()
9. {
10.   int n,i;
11.   cin>>n;
12.   if(n==1) cout<<3;
13.   else{
14.     l[1]=1; r[1]=1; u[1]=1;
15.     for(i=2;i<=n;i++){
16.       l[i]=l[i-1]+u[i-1];
17.       r[i]=r[i-1]+u[i-1];
18.       u[i]=u[i-1]+l[i-1]+r[i-1];
19.     }
20.     cout<<l[n]+r[n]+u[n];
21.   }
22.   return 0;
23. }
1. #include<bits/stdc++.h> 
2. using namespace std;
3. int a[22];
4. int main()
5. {
6.  int n,i;
7.  a[0]=1;
8.  a[1]=3;
9.  for(i=2;i<=20;i++) a[i]=2*a[i-1]+a[i-2];
10.   cin>>n;
11.   cout<<a[n];
12.   return 0;
13. }

 


相关文章
【动态规划刷题 5】 最小路径和&&地下城游戏
【动态规划刷题 5】 最小路径和&&地下城游戏
|
Cloud Native
【刷题日记】473. 火柴拼正方形
本次刷题日记的第 52 篇,力扣题为:473. 火柴拼正方形,中等
|
测试技术 索引 Cloud Native
【刷题日记】120. 三角形最小路径和
本次刷题日记的第 38 篇,力扣题为:120. 三角形最小路径和 ,中等
|
移动开发 前端开发 JavaScript
前端|画个火柴人
前端|画个火柴人
302 0
用C++实现推箱子(小人和推着箱子能过地板版)
用C++实现推箱子(小人和推着箱子能过地板版)
【寒假每日一题】AcWing 4652. 纸张尺寸
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
81 0
|
算法 机器人
算法练习题(五)——机器人走方格
算法练习题(五)——机器人走方格
106 0