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】 最小路径和&&地下城游戏
|
2月前
lanqiaoOJ 211 剪格子
lanqiaoOJ 211 剪格子
15 3
|
测试技术 索引 Cloud Native
【刷题日记】120. 三角形最小路径和
本次刷题日记的第 38 篇,力扣题为:120. 三角形最小路径和 ,中等
|
算法
【学会动态规划】地下城游戏(10)
【学会动态规划】地下城游戏(10)
66 0
|
C语言
深夜手撕三角
深夜手撕三角
35 0
|
机器学习/深度学习
1347:【例4-8】格子游戏
1347:【例4-8】格子游戏
124 0
|
边缘计算 算法 测试技术
LeetCode 周赛 334,在算法的世界里反复横跳
今天是 LeetCode 第 334 场周赛,你参加了吗?这场周赛考察范围比较基础,整体难度比较平均,第一题难度偏高,第四题需要我们在算法里实现 “反复横跳”,非常有意思。
96 1
|
算法 定位技术 C++
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++
简单的来说,算法就是用计算机程序代码来实现数学思想的一种方法。学习算法就是为了了解它们在计算机中如何演算,以及在当今的信息时代,它们是如何在各个层面上影响我们的日常生活的,从而提高我们的逻辑思维能力和处理实际问题的能力。善用算法、巧用算法,是培养程序设计逻辑的重中之重,许多实际的问题都可用多个可行的算法来解决, 但是要从中找出最优的解决算法却是一项挑战。
563 6
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++