有点奇怪的一场,有一些通过人数稍少但反而简单的题。
感觉有几个我没做出来的题不算难,导致我感觉我是个唐氏。
比赛链接。
E. Pattern Search II
题意
定义
给定一个由
找出一个最短的串
题解
设
首先可以发现,
换句话说,
也就是说,答案一定不会超过
考虑如果我们找到了一个合适的
我们知道
假设
否则我们可以知道,
那么考虑如果
这说明
综上所述,如果
这就说明,我们只需要找一个
那么现在问题在于,如何找答案。
考虑到硬做肯定是不太好做的,那么我们就必须要利用这个串的特殊性质。
那么这个串有什么性质呢,
那么就设
就会有
然后直接枚举
时间复杂度
提交记录。
L. Chords
题意
圆上有
找出一个弦的集合,使得其中任意两条弦不相交,使得这个集合大小最大。
题解
有点脑瘫了。
首先断环为链,设
一共两种情况,第一种是不选
第二种情况是
那么这种情况的贡献是
这样就得到了一个
考虑因为数据随机,所以答案不会太大。
所以设
时间复杂度
提交记录。
J. Polygon II
题意
现在有
求出这些线段能够组成一个
题解
感觉和我想象的做法完全不一样,有点牛。
设第
同时容易发现,如果一组方案不合法,那么只会出现一个这样的
也就是说,我们可以考虑计算方案不合法的概率,即
同时我们知道
所以有
问题在于这个东西怎么计算,考虑所有
设
发现可以直接拿
设
转移是比较容易的,唯一可能出现问题的地方在于
容易发现这相当于算
这可以看成一个
直接对边长为
时间复杂度
提交记录。
B. Roars III
题意
给定一棵
现在可以进行若干次操作,每一次操作是选择一个石子,并向其将点
对于每一个
题解
先考虑如何对单个
考虑找到一个最深的点
那么我们找到
(注意到此时
那么我们贪心的把
使用线段树维护这种东西,单个
那么考虑直接加一个换根就过了。
时间复杂度
提交记录。
I. Mercenaries
题意
现在有
每一个城市都有一个勇士,第
每一条道路上都有一个商店,第
若一个勇士当前在城市
购买的物品的力量、魔法属性将会直接加给这个勇士。
给定
一个力量为
求一个最大的
题解
可能是这场最难的题,给了我一种我想出来不太可能,但是想不出来很脑瘫的感觉
考虑将人和道具都看成二维平面上的点,那么如果这里有一坨点,只有他们的右上凸壳是有用的。
考虑假如我们走过了两条路,这两条路拿道具的方案很多,但是由于只有凸壳上的点有用。
所以我们只需要把两条路的凸壳做闵可夫斯基和,就能得到从两条道路上拿道具的方案数。
所以用线段树直接维护每一个树上的区间,人和道具组成的凸包。
合并两个区间就是左边的人和右边的道具做闵可夫斯基和,然后再和右边的人放一起再求一遍凸壳。
然后把所有询问离线下来,按照
复杂度是单
提交记录。