問題描述學校裡有乙個水房,水房裡一共裝有m 個龍頭可供同學們開啟水,每個龍頭每秒鐘的 供水量相等,均為1。 現在有n 名同學準備接水,他們的初始接水順序已經確定。將這些同學按接水順序從1 到n 編號,i 號同學的接水量為wi。接水開始時,
1 到m 號同學各佔乙個水龍頭,並同時打 開水龍頭接水。當其中某名同學j 完成其接水量要求wj 後,下一名排隊等候接水的同學k 馬上接替j 同學的位置開始接水。這個換人的過程是瞬間完成的,且沒有任何水的浪費。即 j 同學第x 秒結束時完成接水,則k 同學第x+1
秒立刻開始接水。若當前接水人數n』不足m, 則只有n』個龍頭供水,其它m−n』個龍頭關閉。 現在給出n 名同學的接水量,按照上述接水規則,問所有同學都接完水需要多少秒。
輸入格式
第1 行2 個整數n 和m,用乙個空格隔開,分別表示接水人數和龍頭個數。 第2 行n 個整數w1、w2、……、wn,每兩個整數之間用乙個空格隔開,wi 表示i 號同 學的接水量。
輸出格式
輸出只有一行,
1個整數,表示接水所需的總時間。
樣例輸入53
4412
1樣例輸出
4樣例輸入84
2371
8732
7093
8076
樣例輸出
163輸入輸出樣例 1說明
第1 秒,
3 人接水。第1 秒結束時,1、2、3 號同學每人的已接水量為1,3
號同學接完
水,4號同學接替3 號同學開始接水。
第2 秒,
3 人接水。第2 秒結束時,1、2 號同學每人的已接水量為2,4
號同學的已接
水量為1。
第3 秒,
3 人接水。第3 秒結束時,1、2 號同學每人的已接水量為3,4
號同學的已接
水量為2。
4 號同學接完水,5
號同學接替4 號同學開始接水。
第4 秒,
3 人接水。第4 秒結束時,1、2 號同學每人的已接水量為4,5
號同學的已接
水量為1。
1、2、5
號同學接完水,即所有人完成接水。
總接水時間為4 秒。
資料規模和約定
1 ≤ n ≤ 10000,1 ≤m≤ 100
且m≤ n;
1 ≤ wi ≤ 100
。
下午就做出來兩道題,但是很開心了 也不知道方法對不對 感覺用的辦法好戲那個也不是很優化,但是這次完全自己想出來的
#include using namespace std;int main()
; int b[10001];
int t=0;
int finish;
cin>>n;//接水的人
cin>>m;//水龍頭的個數
int max=0;
for(int i=0;i>a[i];
if(a[i]>max)
max=a[i];
}/* n=5;
m=3;
a[0]=4;
a[1]=4;
a[2]=1;
a[3]=2;
a[4]=1;*/
finish=m;
if(n<=m)
t=t+x;
cout<
return 0;
}
接水問題 二
n個人一起排隊接水,第i個人的重要性是a i 需要b i 的時間來接水。1 n 100000 0 b i 1000 0 a i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間乘以自己的...
接水問題 題解
學校裡有乙個水房,水房裡一共裝有 m mm 個龍頭可供同學們開啟水,每個龍頭每秒鐘的供水量相等,均為 111。現在有 n nn 名同學準備接水,他們的初始接水順序已經確定。將這些同學按接水順序從 1 11 到 n nn 編號,i ii 號同學的接水量為 w iw i wi 接水開始時,1 11 到 ...
1233 接水問題
題目描述 學校裡有乙個水房,水房裡一共裝有m個龍頭可供同學們開啟水,每個龍頭每秒鐘的供水量相等,均為1。現在有n名同學準備接水,他們的初始接水順序已經確定。將這些同學按接水順序從1到n編號,i號同學的接水量為wi。接水開始時,1到m號同學各佔乙個水龍頭,並同時開啟水龍頭接水。當其中某名同學j完成其接...