#29041: 解題思路(不用迴圈)(剛剛的沒有弄成解題報告因此重發一次)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
c350. “綠白黃” 四校聯課 | From: [27.52.11.129] | 發表日期 : 2022-01-24 21:25

每換一次電話,會用掉K個電話,得到W個新電話,所以減少K-W個電話。因此換一次剩下N-(K-W)個沒用過的電話,兩次就是N-2(K-W),以此類推。
假設x是換的次數,最後剩下的電話數是N-x(K-W)。而總數是一開始的數量N加上換的次數x乘換一次的新電話數W,所以是N+x*W。只要算出x是多少就可以得到答案了。
在N≥K的前提下,因為x次是最後一次,剩下數量小於K,x-1次是倒數第二次,剩下數量大於等於K,可以得到不等式N-x(K-W)<K≤N-(x-1)(K-W)。
(x-1)(K-W)≤N-K<x(K-W)
x-1≤(N-K)/(K-W)<x
(N-K)/(K-W)<x≤(N-K)/(K-W)+1
因為x是整數,所以x等於int((N-K)/(K-W)+1)。
完全不用迴圈。

 
#41750: Re: 解題思路(不用迴圈)(剛剛的沒有弄成解題報告因此重發一次)


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 不指定學校
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2024-11-21 19:18:13
c350. “綠白黃” 四校聯課 | From: [123.192.228.253] | 發表日期 : 2024-08-23 12:50

謝謝,這個推導過程很有幫助,用迴圈的複雜度是 O(n),公式解是O(1)
這題測資數字不大,所以效果不明顯
如果題目想搞人、用很恐怖的數字,那公式解就會好很多

但這排版好難讀....我用LaTeX重新排版一下
希望待會格式不會跑掉,如果格式跑掉了就點這裡(github文檔)吧

 
ZeroJudge Forum