EOJ 1855 貪心 優先佇列

2021-06-26 02:02:39 字數 672 閱讀 3484

既然要加油次數最少,所以在加油站加油一定全部加完。

貪心步驟:1、把油全部用光。

2、選擇路過的加油站中庫存最大的加完。

3、重複1,2直到到達城鎮或者無油可加。

實現:用優先佇列維護加油站,佇列中元素按照油量從大到小排序,行駛過程中將路過的加油站入隊,沒油後取隊首元素加油,隊首元素出隊,計數器+1。

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

struct st

};bool cmp(const st a, const st b)

int main()

if (!q.empty())

if (p==0 && l>0)

break;

}if (l<=0)

cout << ans << endl;

else

cout << "-1\n";

return 0;

}

優先佇列貪心

最近做了幾個用優先佇列進行貪心的題目,這裡寫下來,以免忘了。1 cf 799 b 每次選最便宜的衣服,沒什麼好說的,一發過 include include include include include define n 6005 define inf 0x3f3f3f3f include incl...

貪心加優先佇列

消滅兔子 李陶冶 命題人 基準時間限制 1 秒 空間限制 131072 kb 分值 40 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子...

Meteor Flow(貪心 優先佇列)

meteor flow 貪心 優先佇列 ac code 1 既然只要發射一次,就可以打掉,那麼就要打掉那個耗費經歷最多的,以保留更多的精力 所以用優先佇列,先彈出耗費經歷最多的 2 其次,只要有能力打就先不發射 所以先入棧 34 include 5 include 6 include 7 inclu...