前言

康复训练Day1,2019.11.21 10:10--12:10。
场上写了A和B1,B2刚调完没交上赛后一发T了很窒息,关电脑准备去吃饭的时候突然想到一个T的点再打开电脑改了一下就A了。A调了一年,B1手欠写跪WA了一年,这场如果状态再好点现场打应该是可以冲个橙名的。还行吧离目标还有些距离。

题解

A - Feeding Chicken

S型贪心取格子,取到的格子肯定是连通的,取到足够的R后换下个字符。

B - Send Boxes to Alice

假设共有个礼物,那么。并且对于每个可能的而言,最小费用一定是把每相邻的一段个礼物挪到这一段礼物最中间的那个所在的箱子。对于每个都可以计算费用。
如果存在满足,把一段个礼物切割成若干段个礼物显然不会更差,所以我们把可能的的范围从的约数缩小到最小质因数。这样的的个数是级别的,这样做复杂度是

C - Point Ordering

先利用将点分成两部分,并求出每个点到的距离,询问次数不到次。对于某一侧,找出离直线最远的点,利用进一步将这部分点分成两部分,这两部分可以分别利用之前询问的距离排序。另一侧同理,两部分询问加起来不到次,总共不到次。

D - Tree Queries

某种树链剖分套路。