2015年10月5日 星期一

Uva 714 Copying Books

#uva 714 #binary search

題目來源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=655

題意:先給有N筆測資,以前的書是手抄的,現在有k本書和m位工人,希望你寫出一個程式,讓每位工人分到的頁數是相近的,且每位工人都要分到,若有多組解,以index較大的工人,頁數較多,並以 ' / ' 分隔,輸出答案於一行。

胡言亂語:
一開始以為要排序,就將book依頁數由小排到大,但最後發現根本不用XD。
這題使用的方法是Binary Search,演算法如下:



當upper_bound<lower_bound的時候就可以跳出迴圈(loop),一開始是想說找到了,就可以跳出來,但發現有時候找到的非最小值,所以要持續找到最小值才正確

而最後輸出的部分,因為題目要求若有多組解,後面工人的頁數盡量多一點,別想太複雜,從後面分配輸出就好了XD,思考一下,最後用的stack,因為可以從後面開始存,最後pop掉就好:




[補]stack的用法:



程式碼:

2 則留言:

  1. 繳交期限還沒到
    PO這個好嗎?0.0

    回覆刪除
    回覆
    1. 程式碼打出來應該不會一樣吧@@
      哈哈 其實我也不知道

      刪除

注意:只有此網誌的成員可以留言。