#33229: 解題思路


harlivy_forever (噴火水雞肉飯)

學校 : 國立嘉義高級中學
編號 : 160563
來源 : [163.27.3.96]
最後登入時間 :
2025-08-20 10:44:16

開一個大小為m的vector代表m個水龍頭,分別放m個水龍頭裝水花的總時間,重複挑出裡面最小值加上下一個裝水的人花的時間。以範例一為例:

原本的vector:4 4 1

排序:1 4 4 (1最小,代表這個位置的水龍頭最快空出來)

加上下個人:3(1+2) 4 4 

排序:3 4 4 

加上下個人:4(3+1) 4 4 

所有人都裝完水,從vector中挑出最大者(最慢裝完水):4

 

 

#34042: Re: 解題思路


wubaie (老億)

學校 : 不指定學校
編號 : 123253
來源 : [114.47.210.96]
最後登入時間 :
2025-10-12 11:15:14

開一個大小為m的vector代表m個水龍頭,分別放m個水龍頭裝水花的總時間,重複挑出裡面最小值加上下一個裝水的人花的時間。以範例一為例:

原本的vector:4 4 1

排序:1 4 4 (1最小,代表這個位置的水龍頭最快空出來)

加上下個人:3(1+2) 4 4 

排序:3 4 4 

加上下個人:4(3+1) 4 4 

所有人都裝完水,從vector中挑出最大者(最慢裝完水):4

 

 

C++ 優先佇列:
priority_queue<int,vector<int>, greater<int>> pq;