排隊打水問題 貪心

2021-09-10 17:01:19 字數 847 閱讀 4622

問題描述

有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1、t2………..tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?

輸入格式

第一行n,r (n<=500,r<=75)

第二行為n個人打水所用的時間ti (ti<=100);

輸出格式

最少的花費時間

樣例輸入

3 21 2 3

樣例輸出

7

思路:這道題關鍵就是理解題意

這道題最後要求

花費的時間=每個人接水的時間+每個人排隊等待的時間 

確定了這個就很好求了

這個題的貪心策略:

因為每個人的接水時間已經是固定的了,那麼要確定最少的花費時間

就取決於讓每個人排隊等待的時間最少 

這樣讓接水時間少的人先接,就能保證後面排隊的人用時最短.

#includeusing namespace std;

int main()

while(1)

for(i=0;i}

min=*min_element(b,b+r);//找到當前接水的人中剩餘最短的時間

for(i=0;itim1+=min*r;

tim2+=min*(n-p);

} printf("%d",tim1+tim2);

return 0;

}

藍橋 排隊打水問題 貪心

題目描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?資料規模和約定 其中80 的資料保證n 10 輸入 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出 最少的花費...

演算法提高 排隊打水問題(貪心)

問題描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?輸入格式 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出格式 最少的花費時間 樣例輸入 3 21 2 3 樣例...

排隊打水問題

時間限制 1 sec 記憶體限制 256 mb 提交 1 解決 1 提交 狀態 討論版 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti...