摘要: Day -1 颓。 Day 0 颓。热。 Day 1 颓。热。打蚊子。 笔试勉强阿克。试机写拙劣的拆分写了一小半弃了滚回去颓。然后就一直颓。不会交互打铁咯。 Day 2 2.5h写完t1敢信。t2吐槽了半天出题人放那个15分的部分分是干啥的出来发现会dp的都把这个分拿了。t3不会多项式做法退火一分没阅读全文
posted @ 2019-07-14 19:33 Gloid 阅读(197) 评论(3) 编辑
摘要: A:暴力从小到大枚举判断。 B:显然max-min<=2k时有解,最优解为min+k。 C:一点脑子都不想动可以二分答案。 D、E:跳过。 F:当只要求选择两个数时,显然选择最大值及最大的不是其因子的数最优。因为假设次大值是最大值的因子,那么次大值<=最大值/2,如果不选择最大值,两个数的和一定不大阅读全文
posted @ 2019-07-08 17:33 Gloid 阅读(20) 评论(0) 编辑
摘要: 每个时刻都形成若干段满足段内任意两点可达。将其视为若干正方形。则查询相当于求历史上某点被正方形包含的时刻数量。并且注意到每个时刻只有O(1)个正方形出现或消失,那么求出每个矩形的出现时间和消失时间,就是裸的三维偏序,cdq分治+树状数组即可。阅读全文
posted @ 2019-07-08 15:24 Gloid 阅读(38) 评论(0) 编辑
摘要: A:n-1次操作后最大值会被放到第一个,于是暴力模拟前n-1次,之后显然是循环的。 B:考虑一维的构造,每次取两边端点即可。拓展到二维,对行仍然使用一维情况下的构造方法,当然端点需要交替重复几次以取遍所有点。对列的构造相当于这样一个问题:1~n每个数各给2个,找一个排列使得差分序列不存在相同的数。可阅读全文
posted @ 2019-06-26 21:31 Gloid 阅读(36) 评论(0) 编辑
摘要: 没有找到这场div3被改成div2的理由。 A:签到。 B:随便做? C:显然应该先删权值大的。注意到值域只有100,于是记录每个权值出现次数从大到小删直到满足条件即可。 D:判一下删第一个数或删第二个数可不可行。不行的话公差就被固定下来,直接check。 E:找到每种字母最左上和最右下出现位置。然阅读全文
posted @ 2019-06-20 22:01 Gloid 阅读(37) 评论(0) 编辑
摘要: A:签到。 B:显然在中间截比较优。于是就找到在左侧和在右侧的最靠近中点的切割点。注意不能有前导0。高精加即可。 C:每个点处理出该列中以该位置为起点形成的三段是什么样子的。注意第三段长度对第二段取min。然后枚举每一行,找到三段相同且合法的子段计算贡献即可。 D:可以首先对每个询问二分出该次要加的阅读全文
posted @ 2019-06-20 21:33 Gloid 阅读(26) 评论(0) 编辑
摘要: A:签到。 B:若将所有差是(p,q)的点对连接起来,显然会得到若干条链,链的数量即为答案。于是只要统计每种差的出现次数即可。 C:显然应该尽量加正数减负数。但同时容易发现至少有一个数要被减掉,至少有一个数要被加上,所以均为正数或均为负数时稍微修改一下。不妨设是排序后要将前p个数减掉,其他数加上。那阅读全文
posted @ 2019-06-16 12:37 Gloid 阅读(55) 评论(0) 编辑
摘要: A:n是奇数无解,是偶数为2n/2。 B:随便做。 C:码码码。求出每个单词元音个数及最后一个元音。然后看只考虑第二列单词的话最多能配多少对。最后把一些第二列中的单词移到第一列即可。 D:有各种麻烦的做法。sol的做法似乎比较清真。找到一条直径。直径的两端点可能恰好有一个可以作为根,先check一下阅读全文
posted @ 2019-06-16 10:54 Gloid 阅读(36) 评论(0) 编辑
摘要: 注意到操作有结合律,容易想到用一个矩形表示第i次操作对第j个位置的数的影响。那么修改是单行内的区间修改,而查询是单列内的区间查询。这样二维线段树上以列为外层行为内层直接打标记就可以维护。然后就喜闻乐见的被卡常了。当年的标算似乎就是树套树,然而都是可持久化AVL树之类难懂的话。 考虑小常数做法。注意到阅读全文
posted @ 2019-06-10 23:22 Gloid 阅读(25) 评论(0) 编辑
摘要: A:显然能除就除。 B:栈维护。 C:枚举每个长度为k的子段取两端点距离/2(向上取整)更新答案即可。因为显然对于一个固定点,要找k个点使得离它的最远点最近,一定是k个点连成一个子段最优。于是可以反过来对每个子段求最优点。 D:将后缀和排序,取整个序列及除此之外最优的k-1个后缀。 E:对每个点求出阅读全文
posted @ 2019-06-10 22:37 Gloid 阅读(25) 评论(0) 编辑