一:用堆来实现反悔贪心 先假设当前状态是最优状态,进行简单贪心,如果之后碰见的状态比当前状态更优,那么我们就用堆来进行反悔操作,使得当前状态的值被收回,使用最优状态的值。 P4053 [JSOI2007] 建筑抢修 分析:因为每个建筑的价值都是相同的,所以可以优先修复快要倒塌的建筑(用sort排个序)。如果当前的时间已经不...
所以聪明的你就会想到,在贪心中加入一个反悔操作。我们可以把卖 100 个给第一个人这个决策放到一个篮子里面,然后我下面如果能卖就卖(满足条件 1),如果卖不掉呢,我们就考虑反悔,看看如果我们之前不和某个人交易,如果我之前交易的比现在的需求量大,我还不如用之前交易的来满足现在的需,然后把之前满足的“退单”,...
一、贪心策略有两种基本贪心策略:从最小/最大开始贪心,优先考虑最小/最大的数,从小到大/从大到小贪心。在此基础上,衍生出了反悔贪心。从最左/最右开始贪心,思考第一个数/最后一个数的贪心策略,把n个数的原问题转换成n−1个数(或更少)的子问题。§1.1从最小/最大开始贪心优先考虑最小/最大的数,从小...