所以我指的是:-
Bucket计划乘公共汽车穿越乡村很长的路程。她的旅程包括N条巴士路线,按必须乘坐的顺序从1到N。公交车本身非常快,但不经常行驶。第i条公交路线每隔Xi天运行一次。
更具体地说,她只能在第Xi,2Xi,3Xi等天乘坐第i条巴士。由于公共汽车非常快,她可以在同一天乘多辆公共汽车。
Bucket必须在D天之前完成旅程,但是她想尽可能晚地开始旅程。她最晚可以乘搭第一班车,但仍在D日前完成旅程?
因此,在这一回合结束后,我寻找了其他程序员的POV,几乎他们中的大多数人都使用二进制搜索来解决此问题,但是,我的解决方案确实很基础。
for _ in range(int(input())):
no_of_buses, no_of_days = list(map(int, input().split()))
list_of_timing = list(map(int, input().split()))
temp_test_day=0
check_no = no_of_days
ans=[]
for i in list_of_timing[::-1]:
div = int(check_no/i)
ans.append(i*div)
check_no=(i*div)
print("Case #"+str(_+1)+": "+str(ans[-1]))
因此,我基本上只是找出了公交车行驶的天数的最高倍(与之相比)。 抱歉,如果我的解释不好,我是编程方面的新手(一两个月),所以我向你们寻求帮助。 有人可以解释我的解决方案比二进制搜索更好还是更坏?
(PS,如果有帮助,两个测试集都接受了我的代码)
谢谢。
OG问题-https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc8/00000000002d83bf