模擬 接水問題

2022-08-04 20:51:14 字數 1699 閱讀 5811

問題描述

學校裡有乙個水房,水房裡一共裝有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完成其接...