关注
n,m = map(int,input().split())
nums = []
for i in range(m):
nums.append(int(input()))
class sol:
def __init__(self):
#
self.seen = set() def dfs(self,nums,n,m,pos,step):
# 停止条件:如果是最后一次看时间后走的
if step == m:
if pos not in self.seen:
self.seen.add(pos)
return
# 剪枝 保证始终在坐标轴范围递归
if 1 <= pos + nums[step] <= n:
a = pos + nums[step]
self.dfs(nums,n,m,a,step+1)
if 1 <= pos - nums[step] <= n:
b = pos - nums[step]
self.dfs(nums,n,m,b,step+1)
return
def main(self):
# 以坐标轴的每个起点为出发点进行递归
for pos in range(1,n+1):
self.dfs(nums,n,m,pos,0)
print(len(self.seen))
test = sol()
test.main() 基本思想:DFS + 剪枝 以坐标轴的每个起点为出发点进行递归,
在坐标轴范围内以不同行走方向不断遍历行走,直到最后一次看时间之后
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 今年秋招是回暖还是遇冷 #
24078次浏览 162人参与
# 毕业论文进行时 #
3698次浏览 59人参与
# 360集团校招 #
14261次浏览 121人参与
# 同bg的你秋招战况如何? #
169455次浏览 989人参与
# 我来点评面试官 #
12087次浏览 90人参与
# 你实习是赚钱了还是亏钱了? #
22921次浏览 211人参与
# 京东开奖 #
449627次浏览 2506人参与
# 秋招开始捡漏了吗 #
66906次浏览 479人参与
# 用一句话形容你的团队氛围 #
14912次浏览 161人参与
# 找工作八股要背到什么程度? #
13989次浏览 218人参与
# 面对逼签的应对技巧 #
3675次浏览 19人参与
# 你找工作是从容有余 or 匆忙滚爬? #
8391次浏览 82人参与
# 工作后,谈恋爱还和学生时代一样吗? #
40116次浏览 376人参与
# 阿里云工作体验 #
32451次浏览 108人参与
# 你的领导最像哪种动物,为什么? #
24805次浏览 136人参与
# 海康威视求职进展汇总 #
532578次浏览 3707人参与
# 上班后,才发现大学__白学了 #
11646次浏览 78人参与
# 职场破冰,你们都聊什么? #
29788次浏览 154人参与
# 三一重工求职进展汇总 #
23079次浏览 82人参与
# 三一集团提前批进度交流 #
40761次浏览 228人参与
# 4399求职进展汇总 #
43291次浏览 229人参与
# 我的AI电子员工 #
21536次浏览 152人参与
查看22道真题和解析