題目:
題意:n
個人排隊在
m個出水口前接水,第
i個人接水需時為
t[i]
,請問接水的最短用時是多少?
分析:貪心+二叉堆。將所有人從大到小排序,依次插入m個出水口,
每次要插入到用時最小的出水口,最後輸出m個出水口中用時最多的那乙個。
本**用優先佇列實現
#include#include#include#include#includeusing namespace std;
/*本題思路:貪心+二叉堆。將所有人從大到小排序,依次插入m個出水口,
每次要插入到用時最小的出水口,最後輸出m個出水口中用時最多的那乙個。
本**用優先佇列實現*/
int cmp(int a,int b)
int tim[101000];
int main(){
int t,n,m;
cin >> t;
while(t--){
cin >>n >> m;
priority_queue,greater> pq;//優先佇列,從小到大入佇列
for(int i=0;i> tim[i];
sort(tim,tim+n,cmp); //從大到小排序
for(int i=0;i
hrbust 2223水題 優先佇列
水題 time limit 500 ms memory limit 32768 k total submit 407 138 users total accepted 153 99 users rating special judge no description 因為是有關於接水的問題,便簡稱為水...
c 基本水題(二)
1.將陣列a中的內容和陣列b中的內容進行交換。陣列一樣大 其實這個問題很簡單和交換兩個數的原理是一樣的,引入乙個變數,只是難點是指標變數交換,為什麼要用指標,其實指標是交換位址,交換值也是可以的,在c語言中,array 100 這種陣列名代表的是整個陣列,陣列的位址由第乙個陣列代表,a就是陣列的內容...
NYOJ 噴水裝置一 水題(貪心)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3描述 現有一塊草坪,長為20公尺,寬為2公尺,要在 橫中心線 上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...