資訊學奧賽一本通 1233 接水問題(evd)

2021-10-25 06:43:23 字數 1274 閱讀 9381

【題目描述】

學校裡有乙個水房,水房裡一共裝有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個整數,表示接水所需的總時間。

【輸入樣例】

5 34 4 1 2 1

【輸出樣例】

4【提示】

樣例輸入#2:

8 423 71 87 32 70 93 80 76

樣例輸出#2:

輸入輸出樣例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秒。

【心得】根據提示模擬,每次找到接水量最少的那個,然後按序遞補,直至所有人都接完水,累加每輪的最小值就是總時間。

【ac**】

#include

#include

#include

#include

using

namespace std;

const

int m=

0x3fffffff

;int a[

10010

],b[

1000];

intmain()

cout

}

資訊學奧賽一本通C 語言 1233 接水問題

題目描述 學校裡有乙個水房,水房裡一共裝有m個龍頭可供同學們開啟水,每個龍頭每秒鐘的供水量相等,均為1。現在有n名同學準備接水,他們的初始接水順序已經確定。將這些同學按接水順序從1到n編號,i號同學的接水量為wi。接水開始時,1到m號同學各佔乙個水龍頭,並同時開啟水龍頭接水。當其中某名同學j完成其接...

資訊學奧賽一本通 小球(drop)

許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...

資訊學奧賽一本通 小球(drop)

this drop is gonna last forever!許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個...