紀念屬於自己的無盡深坑 hrbust修路

2021-08-20 08:05:36 字數 1561 閱讀 9564

修路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新手,可能暫時沒辦法體會...