简单反悔贪心正确性证明
CF865D Buy low sell high
首先有贪心:将每个价值压入堆,如果当前价值大于根,那么就弹根并贡献。
但是这样是错误的:1 2 100,正确答案应当是 99。
我们需要一个反悔的操作:注意到
形式化些,每次购买,弹根的同时,要将自己的价值也压入其中,提供反悔的机会。
考虑正确性。我们要证:不存在任意时刻
我们有:对于所有不是买进点的
那么,
麻了,发现太显然了,不想证了。读者自证。
CF865D Buy low sell high
首先有贪心:将每个价值压入堆,如果当前价值大于根,那么就弹根并贡献。
但是这样是错误的:1 2 100,正确答案应当是 99。
我们需要一个反悔的操作:注意到
形式化些,每次购买,弹根的同时,要将自己的价值也压入其中,提供反悔的机会。
考虑正确性。我们要证:不存在任意时刻
我们有:对于所有不是买进点的
那么,
麻了,发现太显然了,不想证了。读者自证。