关注
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 + 剪枝 以坐标轴的每个起点为出发点进行递归,
在坐标轴范围内以不同行走方向不断遍历行走,直到最后一次看时间之后
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 今年秋招是回暖还是遇冷 #
23940次浏览 161人参与
# 毕业论文进行时 #
3666次浏览 59人参与
# 360集团校招 #
13985次浏览 119人参与
# 同bg的你秋招战况如何? #
169385次浏览 986人参与
# 我来点评面试官 #
12064次浏览 90人参与
# 你实习是赚钱了还是亏钱了? #
22823次浏览 209人参与
# 京东开奖 #
449522次浏览 2505人参与
# 秋招开始捡漏了吗 #
66754次浏览 476人参与
# 用一句话形容你的团队氛围 #
14867次浏览 160人参与
# 找工作八股要背到什么程度? #
13930次浏览 216人参与
# 你找工作是从容有余 or 匆忙滚爬? #
8359次浏览 82人参与
# 面对逼签的应对技巧 #
3634次浏览 19人参与
# 工作后,谈恋爱还和学生时代一样吗? #
40112次浏览 376人参与
# 阿里云工作体验 #
32444次浏览 108人参与
# 你的领导最像哪种动物,为什么? #
24799次浏览 136人参与
# 海康威视求职进展汇总 #
532567次浏览 3707人参与
# 上班后,才发现大学__白学了 #
11572次浏览 77人参与
# 职场破冰,你们都聊什么? #
29761次浏览 154人参与
# 三一重工求职进展汇总 #
23073次浏览 82人参与
# 三一集团提前批进度交流 #
40755次浏览 228人参与
# 4399求职进展汇总 #
43283次浏览 229人参与
# 我的AI电子员工 #
21529次浏览 152人参与
腾讯公司福利 1148人发布
