测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A39067. 回家的路小 Z 家所在的街道都是横平竖直的,从空中俯视看,非常像一张方格表,由 n 行 m 列的方格组成 ,而小 Z 此刻正站在最左上角的格子中,想走回到最右下角的家中,他每次只能往右或者往下走一个格子,毕竟不能走回头路。由于小 Z 家附近在修路,就导致有些格子还不能走。 好在小 Z 手上有一份地图,标注了哪些格子能走,哪些格子不能走。现在请你帮小 Z 算算他这次回家一共有多少种走法吧~【输入格…

填空题 中等

题目描述

回家的路

小 Z 家所在的街道都是横平竖直的,从空中俯视看,非常像一张方格表,由 n 行 m 列的方格组成 ,而小 Z 此刻正站在最左上角的格子中,想走回到最右下角的家中,他每次只能往右或者往下走一个格子,毕竟不能走回头路。

由于小 Z 家附近在修路,就导致有些格子还不能走。 好在小 Z 手上有一份地图,标注了哪些格子能走,哪些格子不能走。现在请你帮小 Z 算算他这次回家一共有多少种走法吧~

【输入格式】

共 n + 1 行,

第 1 行为 2 个正整数 n、m,用空格隔开,表示方格表的行数和列数;

第 2 ~ n+1 行为地图,每行为 m-1 个用空格隔开的正整数 0 或 1,0 表示不能走,1 表示能走。

【输出格式】

一行,一个数,表示小 Z 回家可选的路线总数。

【输入样例】

3 4

1 0 1 1

1 1 1 1

1 1 1 1

【输出样例】

4

参考答案

n, m = [int(i) for i in input().split(' ')] ls = [[0] * (m + 1)] for i in range(n): ls.append([0] + [int(i) for i in input().split(' ')]) for i in range(1, n + 1): for j in range(1, m + 1): if ls[i][j] == 0 or i == 1 and j == 1: continue ls[i][j] = ls[i - 1][j] + ls[i][j - 1] print(ls[n][m])
上一题 下一题