藍橋杯 排隊打水問題

2021-10-01 05:14:34 字數 1090 閱讀 4107

問題描述

有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...