ACM-动态规划9-移动路线
2017-04-17 23:04
211 查看
(欢迎阅读我的博客,如发现错误或有建议请评论留言,谢谢。)
题目要求:
描述
×桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从
左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。
对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:
-------------------
|(2,1)|(2,2)|(2,3)|
-------------------
|(1,1)|(1,2)|(1,3)|
-------------------
蚂蚁共有3种移动路线:
路线1:(1,1) → (1,2) → (1,3) → (2,3)
路线2:(1,1) → (1,2) → (2,2) → (2,3)
路线3:(1,1) → (2,1) → (2,2) → (2,3)
输入
输入只有一行,包括两个整数m和n(0<m+n<=20),代表方格矩阵的行数和列数,m、n之间用空格隔开
输出
输出只有一行,为不同的移动路线的数目。
样例输入
样例输出
题目思路:
在不是最左边和最下边边上的一点,到达该点的路线数为到达左边一点路线数加上到达该点下边一点路线数的和;
而对于最左边边上的点,到达该点路线数等于下面一点路线数,对于最下面边上一点,到达该点的路线数等于前面一点的路线数
(类似于卒拦过河马,但是没有限制点)
代码如下:
题目要求:
描述
×桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从
左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。
对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:
-------------------
|(2,1)|(2,2)|(2,3)|
-------------------
|(1,1)|(1,2)|(1,3)|
-------------------
蚂蚁共有3种移动路线:
路线1:(1,1) → (1,2) → (1,3) → (2,3)
路线2:(1,1) → (1,2) → (2,2) → (2,3)
路线3:(1,1) → (2,1) → (2,2) → (2,3)
输入
输入只有一行,包括两个整数m和n(0<m+n<=20),代表方格矩阵的行数和列数,m、n之间用空格隔开
输出
输出只有一行,为不同的移动路线的数目。
样例输入
2 3
样例输出
3
题目思路:
在不是最左边和最下边边上的一点,到达该点的路线数为到达左边一点路线数加上到达该点下边一点路线数的和;
而对于最左边边上的点,到达该点路线数等于下面一点路线数,对于最下面边上一点,到达该点的路线数等于前面一点的路线数
(类似于卒拦过河马,但是没有限制点)
代码如下:
#include<bits/stdc++.h> using namespace std; int dp[25][25]; int main() { int m,n,i,j; while(cin>>m>>n) { dp[1][1]=1; for(i=1;i<=m;i++) for(j=1;j<=n;j++) { if(i>1&&j>1) dp[i][j]=dp[i-1][j]+dp[i][j-1]; if(i>1) dp[i][1]=dp[i-1][1]; if(j>1) dp[1][j]=dp[1][j-1]; } cout<<dp[m][n]<<endl; } }
相关文章推荐
- 动态规划练习一 09:移动路线
- 动态规划―移动路线
- 动态规划练习题-9(移动路线)
- 动态规划练习--09(移动路线)
- 网格从左下角移动到右上角有多少种路线(动态规划)
- 动态规划--移动路线
- 动态规划练习——移动路线
- 动态规划练习一 移动路线
- 动态规划练习一—9移动路线
- ACM学习历程—SNNUOJ 1239 Counting Star Time(树状数组 && 动态规划 && 数论)
- 《算法导论》中动态规划习题15-6--在棋盘上移动
- ACM 概率&&动态规划
- [ACM] POJ 2593 Max Sequence (动态规划,最大字段和)
- [ACM_模拟] UVA 10881 Piotr's Ants[蚂蚁移动 数组映射 排序技巧]
- noi 2718 移动路线
- 2718_移动路线
- ACM-动态规划5-吃糖果
- ACM-动态规划26-滑雪
- sdut.acm 2012级《程序设计基础Ⅱ)》_动态规划 数字三角形问题
- 《动态规划》hdoj acm 3.3.4 分组背包