n個人一起排隊接水,第i個人需要b[i]的時間來接水。
1 <= n <= 1000
0 <= b[i] <= 1000
同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。
完成接水的人會立刻消失,不會繼續等待。
你可以決定所有人接水的順序,並希望最小化所有人等待時間的總和。
收起
第一行乙個整數n接下來n行,每行乙個整數表示b[i]
一行乙個整數,表示所有人等待時間的總和的最小值
3123
10這是乙個簡單的貪心問題,先介紹一下貪心演算法:
我了解的貪心演算法是一種獲得最優方案的思維或者辦法吧,它在許多題目中有運用,而運用較多的應該是條件比較多,如何獲得最優方案的問題,比如揹包問題,在佔空間與質量,甚至於價值等等方面選取最優的方案,依據目前我的接觸來看,兩種情況的較多,當然,它也有許多運用。例如kruskal演算法,一種用來查詢最小生出樹的演算法,還有用於解決同樣問題的prim演算法和boruvka演算法,dijkstra演算法等一般尋找最優方案的演算法與貪心演算法有關聯,這種思想在做題中會深有體現。
附**:
#include
#include
#include
#include
#include
using namespace std;
int g[10000],h[10000];
int main()
cout《那麼第乙個人接水的時間要三個人一起等,第二個人接水時間是兩個人一起等,最後乙個人接水時間就只有乙個人等了
那麼可以看出最前面的人接水時間最短,總共接水時間就越短,畢竟1*3+2*2+3*1<3*3+2*2+1*1,所以這是排序的根本目的,
當然這個只是涉及乙個變數,比較容易,做這個題的目的就是尋找最優化的思路,一定要分清。
51Nod 排隊接水 貪心
n n 個人一起排隊接水,第 i role presentation i i個人需要b i b i 的時間來接水。1 n 1000 1 n 1000 0 b i 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決...
51nod排隊接水
n個人一起排隊接水,第i個人需要b i 的時間來接水。1 n 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間的總和。input 第一行乙個整數n 接下來n行,每行...
51NOD 貪心演算法專題 C 接水問題二
n個人一起排隊接水,第i個人的重要性是a i 需要b i 的時間來接水。1 n 100000 0 b i 1000 0 a i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間乘以自己的...