演算法提高 排隊打水問題 思路)

2021-09-11 18:39:28 字數 724 閱讀 4221

問題描述

有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1、t2………..tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?

輸入格式

第一行n,r (n<=500,r<=75)

第二行為n個人打水所用的時間ti (ti<=100);

輸出格式

最少的花費時間

樣例輸入

3 21 2 3

題意不難理解,關鍵是如何進行問題的轉化;

可以想到,每個人打水用的時間事固定的,所以消耗的總時間最少就要讓等待的總時間最少,

等待的時間少其實就是讓快的人先打就行了。

只要明白了思路,其它的怎麼實現就是自己喜好的事了

#include#include#include#include#include#include#include#include#include#include#include#define maxn 1300000

#define inf 0x3f3f3f3f

using namespace std;

int vis[maxn];

int prime[maxn];

int cnt=0;

int main()

for(i=r+1;i<=n;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為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?輸入格式 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出格式 最少的花費時間 樣例輸入 3 21 2 3 樣例...

演算法提高 排隊打水問題(貪心)

問題描述 有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1 t2 tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少?輸入格式 第一行n,r n 500,r 75 第二行為n個人打水所用的時間ti ti 100 輸出格式 最少的花費時間 樣例輸入 3 21 2 3 樣例...