帶 反悔 的貪心 超市

2022-05-31 13:51:07 字數 822 閱讀 9216

題面:

超市裡有n件商品,每個商品都有利潤p

i'>pi

和過期時間d

i'>d

i,每天只能賣一件商品,過期商品(即當天d

i<=

0'>di<=0

)不能再賣。

求合理安排每天賣的商品的情況下,可以得到的最大收益是多少。

第一眼看過去,呀,我應該先選利潤大的。

但是因為選了利潤大的,錯失了一些利潤還行的,而且就算 選了利潤還行的也可以繼續選利潤大的怎麼辦?

這樣看起來,保質期,利潤,保質期+利潤,這些指標排序都是不可行的。

那不如,我們就一路選過去。

我們先按照保質期從小到大排序,只要在保質期範圍內我們就選。

終於,我們碰到了乙個不能選的物品。

那我們從已經選了的物品中挑乙個利潤最小的,嘗試著替換掉是否更優。

為什麼可以替換呢?因為按照時間排序的話,能選前面的也一定能在同樣的時間上選後面的。

優先佇列可以很方便的實現。

#include using

namespace

std;

struct

pa[10009

];priority_queue

,greater >q;

bool

com(p a,p b)

intn;

intmain()}}

cout

}return0;

}

反悔自動機與反悔堆 有關貪心的反悔操作

其實兩個東西都是堆。區別只不過乙個是利用差值等巧妙設計等效權值,另乙個則單純進行判斷。反悔自動機 名字是我自己起的 貪心是不能反悔的。因為它就是選擇當前的最優解。但是如果當前最優解不是全域性最優解怎麼辦?我們可以設計一種反悔的方法,並且和貪心的手法結合。使得貪心隨便選擇,都可以達到正解。姑且叫反悔自...

種樹 反悔操作 貪心

本人水平有限,題解不到為處,請多多諒解 本蒟蒻謝謝大家 題目 傳送門 具體的解析大佬部落格裡有 推薦 部落格 我這裡是來講下如何 實現的 我們用pair來實現堆優化,first代表權值,second代表權值位置 1 void del int x 以上 如何理解呢?先看一幅圖 我們先算4個點 如果依照...

概述 貪心「反悔」策略 模型

這種 反悔 操作真的很強 貪心操作中保證每一步都選取當前最優解,但通過某種轉換將一步更改操作轉為乙個可選取的物品。又到了諾德縣的百姓孝敬夾克大老爺的日子,帶著數量不等的銅板的村民準時聚集到了村口。夾克老爺是一位很 善良 的老爺,為了體現他的仁慈,有一套特別的收錢的技巧。1 讓所有的村民排成一隊,然後...