您好,登錄后才能下訂單哦!
本篇內容介紹了“如何解決調手表問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
問題描述
小明買了塊高端大氣上檔次的電子手表,他正準備調時間呢。
在 M78 星云,時間的計量單位和地球上不同,M78 星云的一個小時有 n 分鐘。
大家都知道,手表只有一個按鈕可以把當前的數加一。在調分鐘的時候,如果當前顯示的數是 0 ,那么按一下按鈕就會變成 1,再按一次變成 2 。如果當前的數是 n - 1,按一次后會變成 0 。
作為強迫癥患者,小明一定要把手表的時間調對。如果手表上的時間比當前時間多1,則要按 n - 1 次加一按鈕才能調回正確時間。
小明想,如果手表可以再添加一個按鈕,表示把當前的數加 k 該多好啊……
他想知道,如果有了這個 +k 按鈕,按照最優策略按鍵,從任意一個分鐘數調到另外任意一個分鐘數最多要按多少次。
注意,按 +k 按鈕時,如果加k后數字超過n-1,則會對n取模。
比如,n=10, k=6 的時候,假設當前時間是0,連按2次 +k 按鈕,則調為2。
輸入:一行2個整數n,k
輸出:一行一個整數
解決方案
廣搜,每次一層算一次,每一層加入每個點+1和+k中未訪問的數值
代碼清單 調手表Python代碼
Courier New字體,23磅行間距
n, k = map(int, input().split())
ans = [] count = count_ =0
for i in range(1, n):
if i % k != 0: count += 1 else: count = 0 count_ += 1 ans.append(count + count_)
print(max(ans))
|
“如何解決調手表問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。