Luogu 2949(倒序貪心)

2021-10-02 17:36:59 字數 665 閱讀 4096

傳送門

題意:n個工作,每個工作有ddl和收益,每個時間點最多跟一項工作(該工作只消耗該時間點),求選擇某些工作能獲得的最大收益

題解:1. 「後悔法」:(留坑待填)

2. 蜜汁倒序貪心:

按時間倒著排序,ddl大的放前面,然後每一輪把ddl的相同的扔進優先佇列裡(權值大的在隊首),之後從後往前列舉時間點進行貪心。

考慮到每從優先佇列取出乙個元素就需要將ddl相同的元素的ddl減一(同乙個時間點只能幹一項工作),這個可能可以用資料結構操作...吧◔ ‸◔?。但是可以想乙個偷懶的方法--記錄當前考慮到的時間cur,沒取出乙個元素就cur--,減到跟下一輪ddl為止(因為再取出的話就要考慮下一輪ddl的元素)。

大概就是這樣......

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

typedef long long ll;

const int n=1e6+4;

int n;

ll sum;

struct node

inline int read()

int main()

printf("%lld\n",sum);

return 0;

}

294 翻轉遊戲 II

題目描述 你和朋友玩乙個叫做 翻轉遊戲 的遊戲,遊戲規則 給定乙個只有 和 的字串。你和朋友輪流將 連續 的兩個 反轉成 當一方無法進行有效的翻轉時便意味著遊戲結束,則另一方獲勝。請你寫出乙個函式來判定起始玩家是否存在必勝的方案。示例 輸入 s 輸出 true 解析 起始玩家可將中間的 翻轉變為 從...

294 翻轉遊戲 II

你和朋友玩乙個叫做 翻轉遊戲 的遊戲,遊戲規則 給定乙個只有 和 的字串。你和朋友輪流將 連續 的兩個 反轉成 當一方無法進行有效的翻轉時便意味著遊戲結束,則另一方獲勝。請你寫出乙個函式來判定起始玩家是否存在必勝的方案。示例 輸入 s 輸出 true 解析 起始玩家可將中間的 翻轉變為 從而得勝。延...

Linux編輯器 vim的tag29 4

29.4查詢全域性識別符號 你正在編寫c程式,並且想知道乙個變數是被宣告為int或者unsigned。乙個發現這個的快速方法是使用 i命令。假設游標在column這個字上,輸入 i,vim會列出匹配的所有行。不僅僅在當前檔案,所有包含檔案,和包含檔案中包含的檔案,都會列出。這種方式相對於使用tags...