[蓝桥杯][算法训练VIP]接水问题(思维)
題目描述
學校里有一個水房,水房里一共裝有m個龍頭可供同學們打開水,每個龍頭每秒鐘的供水量相等,均為1。現在有n名同學準備接水,他們的初始接水順序已經確定。將這些同學按接水順序從1到n編號,i號同學的接水量為wi。接水開始時,1到m號同學各占一個水龍頭,并同時打開水龍頭接水。當其中某名同學j完成其接水量要求wj后,下一名排隊等候接水的同學k馬上接替j同學的位置開始接水。這個換人的過程是瞬間完成的,且沒有任何水的浪費。即j同學第x秒結束時完成接水,則k同學第x+1秒立刻開始接水。若當前接水人數n’不足m,則只有n’個龍頭供水,其它m?n’個龍頭關閉。現在給出n名同學的接水量,按照上述接水規則,問所有同學都接完水需要多少秒。
樣例 1 說明
第1秒,3人接水。第1秒結束時,1、2、3號同學每人的已接水量為1,3號同學接完水,4號同學接替3號同學開始接水。
第2秒,3人接水。第2秒結束時,1、2號同學每人的已接水量為2,4號同學的已接水量為1。
第3秒,3人接水。第3秒結束時,1、2號同學每人的已接水量為3,4號同學的已接水量為2。4號同學接完水,5號同學接替4號同學開始接水。
第4秒,3人接水。第4秒結束時,1、2號同學每人的已接水量為4,5號同學的已接水量為1。1、2、5號同學接完水,即所有人完成接水。
總接水時間為4秒。
數據規模和約定
1 ≤ n ≤ 10000,1 ≤m≤ 100 且m≤ n;
1 ≤ wi ≤ 100。
輸入
第1 行2 個整數n 和m,用一個空格隔開,分別表示接水人數和龍頭個數。 第2 行n 個整數w1、w2、……、wn,每兩個整數之間用一個空格隔開,wi 表示i 號同 學的接水量。
輸出
輸出只有一行,1 個整數,表示接水所需的總時間。
樣例輸入
8 4
23 71 87 32 70 93 80 76
樣例輸出
163
思路:這個題目數據量比較小,暴力也可以。但是我用的優先隊列,因為接水順序是固定的,所以前m個人一定是每個水龍頭都安排上。剩下的人,就是前面誰接完水了,他就頂上。最后看哪個水龍頭上時間最長,就是接水花費的總時間。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的[蓝桥杯][算法训练VIP]接水问题(思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [蓝桥杯][2018年第九届真题]迷宫与
- 下一篇: INVZI 为苹果 iMac 推出底座扩