【题解】Wannafly挑战赛3
T1 珂学送分
用表示
这段子序列可以切成的期望段数,对于每个
,我们可以找到一个最大的
,使得
这段的和不超过
,那么有
。随着
的减小,其对应的
也会减小,所以可以用一根单调的指针维护
。
的计算有一个后缀和解决。
T2 遇见
找到A的车的挡位的最快速度和最慢速度,那么他和B之间的相对速度就是(B的速度+A的速度),用总距离除以最快和最慢的速度,分别计算即可。注意单位之间的转换,1m/s=3.6km/h。
T3 位数差
设为
在十进制下的位数,那么
可以在读入的时候算好,而计算
,其实和a数组里元素的顺序没什么关系,所以可以把数组
排序后从大到小枚举每个
,考虑比
小的数
加上去的情况,位数要不不变,要不就加
,二分不变和加一的临界点即可。
T4 蝴蝶
枚举中间点,暴力枚举四个方向扩展的长度再用前缀和的手段判断左右两条直线是否全由或
填充,复杂度
T5 迷宫
首先证明从树上的点走到点
的期望为
,其中下标的
表示边集;
令的度,
对于一颗子树来说,其次不难发现路标一定全放在
到
的路径上。
用表示前
个点用了
个路标的情况下达到i最少的期望步数。考虑到
个点放在
的情况,对于
中的点
,有
然而因为在点有个路标,
,总体考虑。
用这个斜率优化一下就可以了。