ll

♀尐吖头ヾ 提交于 2019-12-03 10:20:19

11.3

放假回来,晚上考的,困。

T1想了个分块的思路,打了1h发现伪了。然后写线段树,写了1h发现也是伪的,最后交暴力了。听了听线段树维护单调栈,发现以前之所以不能理解cal函数,是因为对于维护单调栈有点误解,其实是算贡献,不是真的栈,左儿子只受到传入参量的影响,右儿子要么依旧受到左儿子控制,要么受到传入参量控制,依旧受到控制可以直接用sum[p]-sum[p<<1],取决于pushup的sum[p]=sum[p<<1]+cal(p<<1)。当然可以维护一个额外参量。

T2直接就输出-1了。由于原料没有限制,每天做电脑的最小原料钱是可以直接单变量干出来的。然后用权值线段树开一个仓库,先把所有的电脑认为是在第一天做的存进去,然后取出的时候再加上存电脑的钱,动态的删除已选元素,删除多余的元素,贪心的取最小,删最大。-1随便特判一下。

T3打了30Dfs,然后挂上了一个基于反悔堆的贪心,没有多分。按照A小到大排序,两两分组,选取其中B比较大的,这样B必然满足,A的最坏情况是全都是小的,然而在选择集合不变的基础上,将分组向右平移,则达成两两分组选择的A较大。所以必然有解。

附录: 随行的数据生成器,插件和飚程。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!