牛客网 网格走法数目

题目描述

有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。

输入描述:

输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。

输出描述:

输出包括一行,为走法的数目。


解法一:dfs

def dfs(i, j):
    global count, x, y
    if (((i == y) and (j == x))):
        count += 1
        return
    if (i + 1 <= y):
        dfs(i + 1, j)
    if (j + 1 <= x):
        dfs(i, j + 1)
       
x, y = raw_input().split(' ')
x = int(x) + 1; y = int(y) + 1
count = 0
dfs(1, 1)
print(count)


解法二:动态规划

x,y = map(int,raw_input().split())
 
= [[0 for in range(y+1)] for in range(x+1)]
# print d[1][2]
for in range(y+1):
    d[0][j]=1
for in range(x+1):
    for in range(y+1):
        d[i][j] =d[i-1][j]+d[i][j-1]
print d[x][y]


猜你喜欢

转载自blog.csdn.net/qq_42522262/article/details/80779109