1570C旅行(关于路径条数问题)
来源:互联网 发布:iphone拨号软件 编辑:程序博客网 时间:2024/05/17 03:48
题目描述
Tom和Alice结婚一段时间了,感情非常好,一天他们相约去旅行,终点在遥远的地方。
地形是非常复杂的,路途是非常曲折的。但我们简化一下是一个矩阵。起点也就是他们家在矩阵的左下角,终点也就是他们要去的遥远的地方在右上角,矩阵行列的交点是他们可以驻足的地方,但是有的却是陷阱,他们是不能从那里通过的。Tom要听Alice的,只会往上或往右走,不往回走,直到终点。
Alice要Tom提前算出从起点到终点一共有多少条路,可Tom不会啊,所以就找到你了,你是编程高手,希望你帮他解决这个问题,不然他们的婚姻就有危机了。
输入
输入数据的第一行是两个正整数H,W(2 < H,W < 20),代表矩阵的高和宽。接下来是一个矩阵,共H行,每行W个元素,用空格隔开,元素取值只有0或1,0表示可以走,1表示是陷阱,数据保证位于起点和终点的元素肯定是0。
输出
输出一个整数,即从起点到终点的路径数。
示例输入
5 5
1 1 1 1 0
0 0 1 1 0
0 0 0 0 0
1 0 1 0 1
0 0 0 0 0
示例输出
2
- #include <stdio.h>
- int main()
- {
- int a[20][20], i, j, b[20][20], m, n;
- scanf("%d%d", &m, &n);
- for(i = 0; i < m; i++)
- {
- for(j = 0; j < n; j++)
- scanf("%d", &a[i][j]);
- }
- for(i = m - 2; i >= 0; i--)
- {
- if(a[i][0] == 0) b[i][0] = 1;
- else
- {
- for(; i >= 0; i--)
- b[i][0] = 0;
- break;
- }
- }
- for(j = 1; j < n; j++)
- {
- if(a[m-1][j] == 0) b[m-1][j] = 1;
- else
- {
- for(; j < n; j++)
- b[m-1][j] = 0;
- break;
- }
- }
- for(i = m - 2; i >= 0; i--)
- {
- for(j = 1; j < n; j++)
- {
- if(a[i][j] == 1)
- b[i][j] = 0;
- else
- b[i][j] = b[i+1][j] + b[i][j-1];
- }
- }
- printf("%d\n", b[0][n-1]);
- return 0;
- }
- 1570C旅行(关于路径条数问题)
- 迷宫问题二 统计路径条数(dfs+回溯)
- 矩阵图求路径条数问题(简单dp)
- 路径条数 (迷宫问题的递归方法)
- 旅行售货员问题(c++)
- 旅行商问题 打印路径
- 最短路径条数(floyd)
- 最短路径遍历树-----(旅行商问题)
- 经典算法<一>迷宫问题 4.多条路径 求路径条数求解 C++实现
- 算法学习-最短路径条数问题(队列相关)
- ZOJ 2760 最短路径条数问题
- 最短路径条数问题 - 广度优先搜索
- 【LeetCode】最短路径条数问题(BFS)
- 最短路径条数问题(退化Dijkstra,BFS)
- 关于Bitonic旅行路线问题
- POJ3463 求次短路径条数
- 最短路径条数
- 1570C 旅行
- sciTE设置
- 标准库rand()函数的缺陷以及Blitz++随机数生成的简介
- PHP 【解决】中文乱码问题
- Qt多线程编程中的对象线程与函数执行线程
- stm32快速学习4——串口发送字符
- 1570C旅行(关于路径条数问题)
- Jquery实现无刷新DropDownList联动
- 平方乘算法实现
- 老鼠走迷官(二)
- MSP430 JTAG引脚图
- 周末做什么
- 其實yahoo公司也不是想像中那麼末日
- 全球最好的10的商品搜索引擎
- Android开发学习之使用ViewPager+PagerTabStrip制作可滑动的Tab