1452 接水問題 思維

2022-05-30 16:54:10 字數 1512 閱讀 8530

學校裡有乙個水房,水房裡一共裝有 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 3

4 4 1 2 1

8 423 71 87 32 70 93 80 76

4

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 #include 

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

const

int inf = 0x3f3f3f3f

;const

int mod = 1e9+7

;int n, m, w[10000+8

], sum;

intmain()

}w[id] +=t;

}sort(w, w+m);

printf(

"%d\n

", w[m-1

]); }

return0;

}

接水問題 二

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完成其接...