模拟55 题解

A. 联

一眼线段树。

觉得T1似乎不应该这么难打。

然而看了几分钟没有想出更好的做法。

于是花了二十多分钟码了线段树。

段错误一会之后,一遍过样例就交了。

后来对拍也过了,很偷税

所以直接维护一下出现位置最靠坐的0 1就行了。

一种比较好的离散化做法是将左闭右闭的区间转化为左闭右开,

因为只关注最左状态,这种做法是正确的。

 

 

 

B. 赛

将全部的物品分为四个组,给四个组分别排序。

那么每个组中的物品应该是等效的,且价值低的更优。

刚开始以为是贪心,准备大力分类讨论。

打着打着突然想到,

枚举选择了多少个交集,先补全后尽量用小的,一定是最优策略。

这样理应是单谷的。

随机数据打表发现确实是,所以三分就完了。

 

 

 

C. 题

对于每一个苹果,倒推考虑每个人,求出使每个苹果不被吃,

必须被吃掉的苹果集合,不断扩大这个集合。

那么:

如果当前人所吃的苹果两个都在集合中,那么最终当前考虑的苹果必死,结束。

如果当前人吃的一个苹果在集合中,那么前一些人中,两个苹果都应被吃。

如果当前人吃的两个苹果都不在集合中,那么集合无需扩大。

最后$n^2$枚举并判断两个人被吃掉的苹果集合是否没有交集就可以了。

posted @ 2019-09-29 21:44  skyh  阅读(207)  评论(0编辑  收藏  举报