習題 17 排隊提水問題

2021-05-23 16:56:29 字數 1065 閱讀 4535

習題 17:排隊提水問題★★

n個人同時提水到乙個水龍頭前提水

因為大家的水桶大小不一,所以水龍頭注滿第i(i=1,2,3......n)個人所需要的時間是t(i)

編寫乙個程式,對這n個人使他們花費的時間總和最小,並求出這個時間

例如有三個人a,b,c,用時分別是2,1,3

排隊順序為c,b,a的時候,c要等待3,b要等待4,c要等待6,總和為3+4+6=13

排隊順序為a,b,c的時候,a要等待2,b要等待3,c要等待6,總和為2+3+6=11

11更小,要找出這樣的最小值。

輸入(有多組測試資料,每組資料裡第一行為n(1<=n<=10000),表示人數,第二行為t(i),

n是多少就輸入多少,表示各人要注滿水桶的時間,中間用空格分隔):

3 2 1 3

輸出(花費時間總和的最小值):

10 難度:easy

此題用信心演算法,先對輸入的資料排序,再求最小值。

演算法如下

#include    

#include

#define max 10000

int partition(

int a,

int low ,

int high);

void quicksort(

int a,

int low ,

int high);

int main()

quicksort(input,0,n-1);

res = 0;

for(i=0; i

printf("

%ld/n",res);

}return 0;

} int partition(

int a,

int low ,

int high)

a[low] = pivot;

return low;

} void quicksort(

int a,

int low ,

int high)

}

1339 排隊(超級水 )

時間限制 1 秒 記憶體限制 128 mb 提交 230 解決 46 題目描述 學校要進行合唱比賽,需要排乙個隊形。一共2n個人 隊形要求 兩排,每排n人,且前排任意乙個的人的身高比後排的任意乙個人的身高都低。問是否排成這種隊形,如果可以輸出 yes 否則輸出 no 輸入第一行 t,測試例項個數。第...

2956 排隊問題

題目描述 description 有n個學生去食堂,可教官規定 必須2人或3人組成一組,求有多少種不同分組的方法。輸入描述 input description 乙個數,n 輸出描述 output description 乙個數,即答案。樣例輸入 sample input 6 樣例輸出 sample ...

2353排隊問題

n個身高不同的小朋友,分別站在編號1 n的格仔裡,n個格仔排成1列。現在我們希望他們能夠按照身高的順序從低到高排成1列。按現在的順序給出n個小朋友的身高,問所有小朋友總共需要移動多少個格仔,才能按照身高從低到高的順序排好隊。注 從格仔3移動到格仔1,需要移動2個格仔。例如 4個小朋友,身高分別是 1...