問題描述
有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1、t2…………tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?
輸入格式
第一行n,r (n<=500,r<=75)
第二行為n個人打水所用的時間ti (ti<=100);
輸出格式
最少的花費時間
樣例輸入
3 21 2 3
樣例輸出
思路解析
一種最佳打水方案是,將n個人按照ti從小到大的順序依次分配到m個龍頭打水。
例如樣例中,ti從小到大排序為1,2,3,4,5,6,7,將他們依次分配到3個龍,則
去龍頭一打水的為 1,4,7;
去龍頭二打水的為 2, 5;
去龍頭三打水的為 3,6。
第乙個龍頭打水的人總花費時間 = 13+42+71=18
第二個龍頭打水的人總花費時間 = 22+51=9
第三個龍頭打水的人總花費時間 = 32+6*1=12
所以總的等待時間 = 18+9+12=39
**
#include
#include
#include
#include
#include
using
namespace std;
intmain()
int x=b.
size()
;for
(int i=
0;isize()
;i++)}
cout<
}
輸出結果
藍橋杯 演算法提高 排隊打水問題
問題描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數 且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?輸入格式 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出格式 最少的花費時間 樣例輸入 3 21 2 3 樣...
藍橋 排隊打水問題 貪心
題目描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?資料規模和約定 其中80 的資料保證n 10 輸入 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出 最少的花費...
藍橋杯 演算法提高VIP 排隊打水問題 貪心
題目描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?資料規模和約定 其中80 的資料保證n 10 如下 include define ll long long using namespace std co...