習題 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...