OD C卷 - 小华地图寻宝
创始人
2024-11-11 09:10:44

小华地图寻宝(200)

  • m x n的矩阵中,横纵坐标范围【0,n-1】【0,m-1】
  • 横纵坐标数位之和<=k的方格中存在1g黄金,如(21,13)坐标中2+1+1+3 <= 10;
  • 从(0,0)入口,只能上 下 左 右四个方向行走一格,最多能获取多少g黄金?

输入描述:
输入m n k ,m n的范围在【0,50】,k的范围在【0,100】

输出描述:
最多获取多少黄金?

示例1
输入:
40 40 18
输出:
1484

示例2
输入:
5 4 7
输出:
20

思路:

  • DFS
  • 函数递归实现
 sys.setrecursionlimit(20000) m, n, k = list(map(int, input().strip().split())) visited = [[0 for j in range(n)] for i in range(m)]  def dfs(x, y, m, n, k) :     if x < 0 or y < 0 or x >= m or y >= n or visited[x][y]==1:         return 0     total_num = 0     xx = copy.deepcopy(x)     yy = copy.deepcopy(y)     while xx > 0:         total_num += xx % 10          xx //= 10     while yy > 0:         total_num += yy % 10          yy //= 10       if total_num > k:         return 0            visited[x][y] = 1      result = 1     if x+1 <= m:         result += dfs(x + 1, y, m,n,k)          if x-1 >= 0:         result += dfs(x - 1, y, m,n,k)          if y+1 <= n:         result += dfs(x,y+1, m,n,k)          if y-1 >=0 :         result += dfs(x, y-1, m,n,k)     return result   print(dfs(0, 0, m,n,k)) 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...