題目描述
有n個人在乙個水龍頭前排隊接水,假如每個人接水的時間為ti,請程式設計找出這n個人排隊的一種順序,使得n個人的平均等待時間最小。
純思維題,這道題最重要的就是,每個人的等待時間為不是ti,而是每個人前面的人等待時間之和,換個思維就是每個人的等待時間*這個人之後的人數。接水順序就是接水時間從小到大排個序就行。
**:
#include
using
namespace std;
struct nodean[
1010];
bool
cmp(node p,node q)
intmain()
sort
(an+
1,an+n+
1,cmp)
;long
long sum=0;
for(
int i=
1;i<=n;i++
)printf
("\n");
printf
("%.2f\n",(
double
)sum/
(double
)n);
return0;
}
洛谷 P1223 排隊接水
這一題是貪心來求解問題,讓小的在前面,大的在後面,就是貪心下的最優解 這裡使用一下priority queue優先佇列在做,這個是stl容器 下面是 include include include include include using namespace std typedef pair in...
洛谷P1223 排隊接水
這裡主要想記一下強制型別轉換可能也需要浪費時間?一開始我是把sum定義為 int型別,下面的double s2 double sum n 有兩組資料死活跑不過,也不知道為啥,希望路過的大佬能給小弟看看。方法1 定義兩個陣列,乙個存資料,乙個存編號。include using namespace st...
洛谷 P1223 排隊接水
有 n 個人在乙個水龍頭前排隊接水,假如每個人接水的時間為 t i 請程式設計找出這 n 個人排隊的一種順序,使得 n 個人的平均等待時間最小。第一行為乙個整數 n。第二行 n 個整數,第 i 個整數 t i 表示第 i 個人的等待時間 t i 輸出檔案有兩行,第一行為一種平均時間最短的排隊順序 第...