ACM暑期集訓day02 修路

2021-08-21 17:46:47 字數 885 閱讀 3023

前段時間,某省發生乾旱,b山區的居民缺乏生活用水,現在需要從a城市修一條通往b山區的路。假設有a城市通往b山區的路由m條連續的路段組成,現在將這m條路段承包給n個工程隊(n ≤ m ≤ 300)。為了修路的便利,每個工程隊只能分配到連續的若干條路段(當然也可能只分配到一條路段或未分配到路段)。假設每個工程隊修路的效率一樣,即每修長度為1的路段所需的時間為1。現在給出路段的數量m,工程隊的數量n,以及m條路段的長度(這m條路段的長度是按照從a城市往b山區的方向依次給出,每條路段的長度均小於1000),需要你計算出修完整條路所需的最短的時間(即耗時最長的工程隊所用的時間)。

第一行是測試樣例的個數t ,接下來是t個測試樣例,每個測試樣例佔2行,第一行是路段的數量m和工程隊的數量n,第二行是m條路段的長度。

對於每個測試樣例,輸出修完整條路所需的最短的時間。

2

4 3100 200 300 400

9 4250 100 150 400 550 200 50 700 300

400

900

用二分法,第一步確定上界和下界,上界是由乙個工程隊來修路,即所有道路的總長度,下界是單段道路的最大長度;第二步確定判斷方法,此題判斷方法較簡單,二分值作為單個施工隊的修路長度上限遍歷一遍道路即可。

#include

using namespace std;

int main()

right=sum;

int mid=(left+right)/2;        

while(leftmid)

}if(gnum>n)

else             

}cout<} system("pause");

return 0;

}

ACM暑期集訓2

今天主要學習了線性dp和揹包問題以及快速冪。1.整數快速冪 這個直接粘上 int qpow int x,int n res res res n n 1 return ans 2.矩陣快速冪 主要就是將整數快速冪的乘法運算換做矩陣的乘法 下面的 是方陣的快速冪 const int n 10 int t...

ACM暑期集訓4

今天主要學習了線段樹,樹狀陣列,st表,差分,分塊和樹剖 好吧,這個已經沒聽懂了 1.線段樹 線段樹涉及許多應用和思想,以下是今天所學 線段樹主要用於處理一段連續區間的插入,查詢,統計,查詢等操作。複雜度 設區間長度是n,所有操作的複雜度是logn級別。性質 線段樹是平衡的2叉樹,最大深度logn ...

ACM暑期集訓5

今天主要學習力圖論基礎和最短路徑 1.圖論基礎 1 鄰接矩陣存圖 w i j 表示以ij為頂點的邊的權值 const int n 105,inf 9999999 int dis n w n n vis n n,m 鄰接矩陣存圖 for int i 1 i n i for int i 0 i2 鄰接表...