問題描述
n個人要打水,有m個水龍頭,第i個人打水所需時間為ti,請安排乙個合理的方案使得所有人的等待時間之和盡量小。
輸入格式
第一行兩個正整數n m 接下來一行n個正整數ti。
n,m<=1000,ti<=1000
輸出格式
最小的等待時間之和。(不需要輸出具體的安排方案)
樣例輸入
7 33 6 1 4 2 5 7
樣例輸出
11提示
一種最佳打水方案是,將n個人按照ti從小到大的順序依次分配到m個龍頭打水。
例如樣例中,ti從小到大排序為1,2,3,4,5,6,7,將他們依次分配到3個龍頭,則去龍頭一打水的為1,4,7;去龍頭二打水的為2,5;去第三個龍頭打水的為3,6。
第乙個龍頭打水的人總等待時間 = 0 + 1 + (1 + 4) = 6
第二個龍頭打水的人總等待時間 = 0 + 2 = 2
第三個龍頭打水的人總等待時間 = 0 + 3 = 3
所以總的等待時間 = 6 + 2 + 3 = 11
#include #include #include using namespace std;
int main()
sort(a, a+n);
int ans = 0;
int cnt = n / r;
while(cnt--)
for(int i = n/r*r; i < n; i++)
cout << ans;
delete a;
return 0;
}
C 藍橋杯 ADV 104 打水問題
問題描述 n個人要打水,有m個水龍頭,第i個人打水所需時間為ti,請安排乙個合理的方案使得所有人的等待時間之和盡量小。輸入格式 第一行兩個正整數n m 接下來一行n個正整數ti。n,m 1000,ti 1000 輸出格式 最小的等待時間之和。不需要輸出具體的安排方案 樣例輸入 7 33 6 1 4 ...
藍橋杯 演算法提高 打水問題
2018 3 22 1.打水問題 問題描述 n個人要打水,有m個水龍頭,第i個人打水所需時間為ti,請安排乙個合理的方案使得所有人的等待時間之和盡量小。輸入格式 第一行兩個正整數n m 接下來一行n個正整數ti。n,m 1000,ti 1000 輸出格式 最小的等待時間之和。不需要輸出具體的安排方案...
藍橋杯 演算法提高 打水問題 邏輯策略 貪心
演算法提高 打水問題 時間限制 1.0s 記憶體限制 512.0mb 提交此題 問題描述 n個人要打水,有m個水龍頭,第i個人打水所需時間為ti,請安排乙個合理的方案使得所有人的等待時間之和盡量小。輸入格式 第一行兩個正整數n m 接下來一行n個正整數ti。n,m 1000,ti 1000 輸出格式...