[蓝桥杯][算法提高VIP]打水问题(贪心)
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][算法提高VIP]打水问题(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
N個人要打水,有M個水龍頭,第i個人打水所需時間為Ti,請安排一個合理的方案使得所有人的等待時間之和盡量小。
提示
一種最佳打水方案是,將N個人按照Ti從小到大的順序依次分配到M個龍頭打水。
例如樣例中,Ti從小到大排序為1,2,3,4,5,6,7,將他們依次分配到3個龍頭,則去龍頭一打水的為1,4,7;去龍頭二打水的為2,5;去第三個龍頭打水的為3,6。
第一個龍頭打水的人總等待時間 = 0 + 1 + (1 + 4) = 6
第二個龍頭打水的人總等待時間 = 0 + 2 = 2
第三個龍頭打水的人總等待時間 = 0 + 3 = 3
所以總的等待時間 = 6 + 2 + 3 = 11
輸入
第一行兩個正整數N M 接下來一行N個正整數Ti。
N,M< =1000,Ti< =1000
輸出
最小的等待時間之和。(不需要輸出具體的安排方案)
樣例輸入
7 3
3 6 1 4 2 5 7
樣例輸出
11
思路:其實題意給的已經很明白了,排序之后,從小到大依次往水龍頭上排列,這樣的話,接水時間長的就排在了后面,這樣的話,就不會很多人等他,這樣就是最小的。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的[蓝桥杯][算法提高VIP]打水问题(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再不用装一堆软件了!Windows 11
- 下一篇: [蓝桥杯][算法提高VIP]排队打水问题