总时间限制: 1000ms 内存限制: 65536kB
描述
有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b.    走过的格子立即塌陷无法再走第二次;
c.    只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

输入
允许在方格上行走的步数n(n <= 20)
输出
计算出的方案数量
样例输入
2
样例输出

7

分析

使用递归的方法,将方向分开处理,从(i,j)出发,等于三个方向的步数和;

代码:

#include <iostream>
#include <cstring>
using namespace std;
int visited[30][50];
int ways(int i,int j,int n)
{if(n==0)return 1;visited[i][j] = 1;int num = 0;if(! visited[i][j-1])num+=ways(i,j-1,n-1);if(! visited[i][j+1])num+=ways(i,j+1,n-1);if(! visited[i+1][j])num+=ways(i+1,j,n-1);visited[i][j] = 0;return num;
}int main()
{int n;cin>>n;memset(visited, 0 ,sizeof(visited));cout <<ways(0,25,n)<<endl;return 0;
}

百练4982 踩方格相关推荐

  1. 百练4103:踩方格

    题目要求 总时间限制: 1000ms 内存限制: 65536kB 题目描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设: a.每走一步时,只能从当前方格移动一格,走到某个相邻的方格上: b.走 ...

  2. noi 4982 踩方格

    题目链接:http://noi.openjudge.cn/ch0206/4982/ 深搜很好写. DP:O(n) d[i] 为走 I 不的方案数, l[i],r[i],u[i]为第一步走 左,右,上, ...

  3. 百练,4103,踩方格

    百练,4103,踩方格 普通做法:(也可以找规律) #include #include//要调用memset函数,头文件 using namespace std; int visited[50][50 ...

  4. 北大OJ百练——4075:矩阵旋转(C语言)

    百练的这道题很简单,通过率也达到了86%,所以我也就来贴个代码了...下面是题目: 不过还是说一下我的思路: 这道题对一个新来说,可能是会和矩阵的转置相混淆,这题并不是要我们去求矩阵的转置. 这题,我 ...

  5. 威佐夫博弈:百练OJ:1067:取石子游戏

    威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...

  6. 百练OJ:4003:十六进制转十进制(python三行代码实现)

    题目链接:百练OJ:4003 描述 将十六进制数转换成十进制数 输入 第一行有一个整数T,表示共有T组数据 接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前 ...

  7. 百练OJ:2742:统计字符数

    题目链接: 百练OJ:2742:统计字符数 描述:判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多 输入:第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的 ...

  8. java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)

    java进制转换函数介绍:Java二进制.八进制.十进制.十六进制相互转换: 二进制转十进制 Integer.parseInt("0110", 2); 八进制转十进制 Intege ...

  9. 百练OJ:2973:Skew数

    题目链接: 百练OJ:2973:Skew数 描述:在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1). 每个位上的可能数字是0 或 1,最后面一个非零位可以是2, 例如, ...

最新文章

  1. 架构师之路 — 软件架构 — 软件版本定义
  2. 介绍MyBatis代码生成网站(四) --- 继承基类
  3. widows下nignx的使用
  4. 【今日CV 视觉论文速览】 13 Feb 2019
  5. 银行理财子公司的“超级”玩法
  6. 美女程序员,看到最后一个就亮了
  7. 统一AI教育是怎么样
  8. 致远OA漏洞学习——A6版本test.jsp 文件上传
  9. Linux Systemd服务
  10. rm -rf 删除文件 恢复
  11. Access to XMLHttpRequest at ‘http://localhost:8000/v1/users/staffs/‘ from origin ‘http://loca 报错
  12. 使用opencv和C++实现多焦距图像合成
  13. eBPF/XDP实现Conntrack功能
  14. 3D游戏设计作业(三)
  15. 测试平台(一)为什么要搭建测试平台?
  16. JS中的event 对象详解
  17. 噗浪(Plurk)创办人 -- 云惟彬:低薪陷阱 廉价的薪水 等待的成本
  18. unity文字逐个出现实现文字打印机效果
  19. 使用注解作为AOP的切入点(@Pointcut)
  20. Screen2EXE录屏|录制视频

热门文章

  1. mysql heartbeat 慢_Mysql 慢日志优化分析方法
  2. Qt中QMap删除元素的简单使用
  3. C语言 __TIME__ - C语言零基础入门教程
  4. C语言代码注释 - C语言零基础入门教程
  5. Python 计算总分数和平均分 - Python零基础入门教程
  6. mysql查看服务器版本sql_云服务器Windows系统查看mysql版本
  7. matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数
  8. html渐变编织背景,【报Bug】uniapp设置了css渐变背景色编译时会报错
  9. C语言调试技巧:stdin,stdout,stderr
  10. 双百双新产业项目是什么_投资380亿,广西38个“双百双新”产业项目开竣工