UPCOJ 5502 優先佇列

2021-08-21 18:05:15 字數 680 閱讀 1121

題目大意:打地鼠,每只地鼠都從0時刻冒出來,但是停留一定的時間有一定的分值,問你怎麼打分數最高

題目思路:設定乙個now記錄秒,對地鼠按照時間公升序,如果時間相同分值降序來排序,然後從第一只地鼠到最後乙隻地鼠,如果now比地鼠停留的時間久,那麼很開心進入佇列,如果不是,那麼就需要把佇列中最小的那個數拿出來比一下,如果比那個數大,那佇列裡那個就彈出來,這個加進去,反之直接continue

以下是**:

#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

#define maxn 100005

#define ll long long

#define rep(i,a,b) for(int i=a;i<=b;i++)

struct nodea[maxn];

bool cmp(node x,node y)

rep(i,1,n)

sort(a+1,a+n+1,cmp);

while(!q.empty())q.pop();

int now=0,ans=0;

rep(i,1,n)

}printf("%d\n",ans);

}return 0;

}

優先佇列(3道優先佇列問題)

優先佇列是一種十分強大的資料結構,它保持了一種動態的有序性,對於不斷改變有入隊的操作,而又需要某種最大或最小的操作的問題是再合適不過了,通常優先佇列的實現是由最小堆或者最大堆完成的,並通過堆排序保持佇列的有序性,模擬佇列的結構,在實際比賽中要寫乙個堆排序還是要一定的時間的,但是stl中queue容器...

佇列以及優先佇列

1.佇列 佇列的定義 標頭檔案 include 佇列是一種先進先出的資料結構 佇列的宣告 queueq 宣告字元型別 queueq 宣告結構體型別 以及可以宣告一些自定義的型別 佇列的操作 入佇列 s.push x 出佇列 s.pop 返回佇列的資料數量 s.size 判斷佇列是否為空 s.empt...

堆疊,佇列,優先佇列

包含標頭檔案 include定義 stacks 特點 先進後出。即 像瓶子一樣。先進來的資料在底部。例 輸入 1 2 3 4 5 輸出 5 4 3 2 1 棧的基本操作 s.push a 把元素a入棧。s.pop 刪除棧頂元素。s.top 返回棧頂元素,但不會刪除。s.size 返回棧中元素個數。s...