2016年5月18日 星期三

(Codeforces)(Python) 675C. Money Transfers

http://codeforces.com/contest/675/problem/C

這題的題意:現在有n個環狀銀行,你在銀行有存錢(正值) or 欠錢(負值)。這n個銀行的錢的總和是0。每一部你都可以把任意數量的錢從一個銀行轉到鄰居銀行。求使得全部銀行的錢=0的最小步數。

我的想法:(我從當初看到題目的過程一直寫下來好了)

一開始想說,最多一定是n部(就一路轉一圈就好了)

後來想說,好想要找出某一些區段=0,使得這些區段蓋滿區間。

後來想想,如果我開前綴和,那不就前綴和一樣的區段中間不就=0!

那那那,那不就是  ( n - 出現最多的前綴和  )   XDDD

耶,AC了!

http://codeforces.com/contest/675/submission/17979231

(後記)

難得我的code寫的這們短,如果按照solution size 排序還看的到我的XDDD

沒有留言:

張貼留言