刷題路 排隊接水

2021-10-19 09:43:51 字數 933 閱讀 8501

貪心。

有 n 個人在乙個水龍頭前排隊接水,假如每個人接水的時間為ti,請程式設計找出這 n 個人排隊的一種順序,使得 n 個人的平均等待時間最小。

第一行為乙個整數 n。

第二行 n 個整數,第 i 個整數 ti

表示第 i 個人的等待時間 ti。

輸出檔案有兩行,第一行為一種平均時間最短的排隊順序;第二行為這種排列方案下的平均等待時間(輸出結果精確到小數點後兩位)。

1056 12 1 99 1000 234 33 55 99 812

3 2 7 8 1 4 9 6 10 5

291.90

#include

#include

using std::sort;

struct water

p[1002];

double ans;

inline

bool

comp

(water a,water b)

intmain()

sort

(p+1

,p+n+

1,comp)

;for

(int i=

1; i<=n; i++

)//排完序的陣列即為順序,輸出即可

printf

("%d "

,p[i]

.num)

;printf

("\n");

for(

int i=

1; i<=n; i++

) ans+

=i*p[n-i]

.time;

//核心公式

ans/

=n;printf

("%.2f"

,ans)

;return0;

}

刷題路 排隊接水

有 n個人在乙個水龍頭前排隊接水,假如每個人接水的時間為 ti,請程式設計找出這 n個人排隊的一種順序,使得 n 個人的平均等待時間最小。第一行為乙個整數 n。第二行 n 個整數,第 i 個整數 ti。表示第 ii 個人的等待時間 ti。輸出檔案有兩行,第一行為一種平均時間最短的排隊順序 第二行為這...

刷題 排隊接水(水題妙解)

題面 n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1,t2,tn為整數且各 不相等,應如何安排他們的打水順序才能使他們花費的時間最少?輸入 第1行,兩個整數n 1 n 500 和r 1 r 100 第2行,n個正整數t1,t2,tn,1 ti 1000 表示每個人裝滿水桶的時間。輸出 1行,乙...

排隊接水(貪心)

題目描述 有n個人在乙個水龍頭前排隊接水,假如每個人接水的時間為ti,請程式設計找出這n個人排隊的一種順序,使得n個人的平均等待時間最小。冒泡泡 第一行 n n 1000 第二行 第乙個人到第n個人每人的接水時間t1,t2,tn,每個資料之間有乙個空格 第一行 一種排隊順序,即1到n的一種排列 第二...