模拟55 题解
A. 联
一眼线段树。
觉得T1似乎不应该这么难打。
然而看了几分钟没有想出更好的做法。
于是花了二十多分钟码了线段树。
段错误一会之后,一遍过样例就交了。
后来对拍也过了,很偷税。
所以直接维护一下出现位置最靠坐的0 1就行了。
一种比较好的离散化做法是将左闭右闭的区间转化为左闭右开,
因为只关注最左状态,这种做法是正确的。
B. 赛
将全部的物品分为四个组,给四个组分别排序。
那么每个组中的物品应该是等效的,且价值低的更优。
刚开始以为是贪心,准备大力分类讨论。
打着打着突然想到,
枚举选择了多少个交集,先补全后尽量用小的,一定是最优策略。
这样理应是单谷的。
随机数据打表发现确实是,所以三分就完了。
C. 题
对于每一个苹果,倒推考虑每个人,求出使每个苹果不被吃,
必须被吃掉的苹果集合,不断扩大这个集合。
那么:
如果当前人所吃的苹果两个都在集合中,那么最终当前考虑的苹果必死,结束。
如果当前人吃的一个苹果在集合中,那么前一些人中,两个苹果都应被吃。
如果当前人吃的两个苹果都不在集合中,那么集合无需扩大。
最后$n^2$枚举并判断两个人被吃掉的苹果集合是否没有交集就可以了。