修路time limit: 1000 ms
memory limit: 65536 k
total submit: 771(317 users)
total accepted: 417(287 users)
rating:
special judge: no
description
前段時間,某省發生乾旱,b山區的居民缺乏生活用水,現在需要從a城市修一條通往b山區的路。假設有a城市通往b山區的路由m條連續的路段組成,現在將這m條路段承包給n個工程隊(n ≤ m ≤ 300)。為了修路的便利,每個工程隊只能分配到連續的若干條路段(當然也可能只分配到一條路段或未分配到路段)。假設每個工程隊修路的效率一樣,即每修長度為1的路段所需的時間為1。現在給出路段的數量m,工程隊的數量n,以及m條路段的長度(這m條路段的長度是按照從a城市往b山區的方向依次給出,每條路段的長度均小於1000),需要你計算出修完整條路所需的最短的時間(即耗時最長的工程隊所用的時間)。
input
第一行是測試樣例的個數t ,接下來是t個測試樣例,每個測試樣例佔2行,第一行是路段的數量m和工程隊的數量n,第二行是m條路段的長度。
output
對於每個測試樣例,輸出修完整條路所需的最短的時間。
sample input
24 3
100 200 300 400
9 4250 100 150 400 550 200 50 700 300
sample output
400900
二分,寫了很多次,最後總結一下所有路過的坑點
上下界:上界為總和,下界為最大值。
計數:如果初始為1,則不用考慮最後。如果初始為0,則考慮最後。
初始化:注意while內部的初始化!!!!!
#include#includeusing namespace std;
#define inf 0x3f3f3f3f
long long a[100006];
int main()
long long l=maxnum,r=sum;
long long now=0;
long long need=0;
while(l<=r)
}if(now)
need++;
if(need>m)
l=mid+1;
else
r=mid-1;
}cout其中,初始為0時(我自己常寫的一種)
now=0;
need=0;
long long mid=(l+r)/2;
for(int i=1; i<=n; i++)
}if(now)
need++;
初始化為1時(其他人部落格常寫,但是一直沒注意區別,導致浪費了很多時間)
int temp = l[0];
int ans = 1;
for(int i=1;i= mid)
else
}
紀念一下,終於能徹底擺脫修路的坑了xd(希望是吧) 選擇屬於自己的ERP
太平洋三威公司 pacific sunwear 通過建立乙個特別的erp系統,成長為擁有1000家連鎖分店的零售商。早在1994年,擁有90家分店的加利福尼亞太平洋三威公司 以下簡稱太平洋三威 在美國西海岸就已頗具影響。隨後該公司進行了大規模的拓展,現在該公司計畫在未來3年裡再增加300家分店,到2...
寫屬於自己的部落格
以前一直想寫部落格,只是因為覺得太浪費時間,所以一直擱置,大學畢業一月半以後,我覺得應該寫寫部落格,一來可以整理一下大學四年來的學習經歷,二來也可以記錄以後的工作經歷。本人上學路程比較坎坷,以至於畢業以後年齡相對來說比較年長一些,所以我決定放棄考研,在以後的工作中鍛鍊自己,是金子在 都會發光。我經常...
打造屬於自己的Vim IDE
troubleshootings further reading references 為什麼要使用vim?讓我們先看看其他人怎麼說 vim or emacs就好比倚天和屠龍,得一可得天下。vim就像學鋼琴一樣,一旦學會,終身受益無窮。這些話都是出自vim高手之口,對於vim新手,可能暫時沒辦法體會...