蓝桥杯真题 Python A组 路径
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯真题 Python A组 路径
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:(動態規劃)
1.由題意可知,在臺階1時步數為零,在臺階2時,步數為1和2的公倍數2,所以在臺階2時步數是2,我們根據動態規劃的思想,我們設立一個列表記錄在臺階i時所需要的最小步數。
2.假想一下當你站在臺階i時你可能是從臺階i - j 上過來的(for j in range(1,22)注意一個前提,i-j 是要大于等于0 的),所以臺階i 上最少步數為min(
[(min_step[i-j] + com(i+1,i-j+1)) for j in range(1,22) if i - j >= 0]) ,直到算出第2021個臺階的最少步數就是我們的答案了。
def com(a:int,b:int):#輸出最小公倍數i = 1max_ = max(a,b)min_ = min(a,b)while i:if (max_*i) % min_ == 0:return (max_*i)i += 1 min_step = [0,2] for i in range(2,2021):a = min([(min_step[i-j] + com(i+1,i-j+1)) for j in range(1,22) if i - j >= 0])min_step.append(a) print(min_step[2020])總結
以上是生活随笔為你收集整理的蓝桥杯真题 Python A组 路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7-8 德才论 (25 分)(C语言实现
- 下一篇: Python之NumPy(axis=0