$div3$ 恢复信心失败。
A Two distinct points
B Divisors of Two Integers
给了一个多重集合,存放着两个正整数 $x$ 和 $y$ 的所有因子,让你恢复出这两个数字。
显然最大值是一个解,对其质因数分解,从多重集合中删除,得到剩下数字中的最大值为另外一个解。
C Nice Garland
给一个只包含字母 $RGB$ 的串,现在要求这个串 $s$ 满足
你可以修改一些位置使得上条件满足,求最小修改数和修改方案。
显然,这个串的前 $3$ 个位置只有 $6$ 种情况,后面部分一直重复这个前缀,枚举前缀即可。
D Diverse Garland
给一个只包含字母 $RGB$ 的串,现在要求这个串 $s$ 满足所有相邻位置字母不同。
你可以修改一些位置使得上条件满足,求最小修改数和修改方案。
考虑 $dp[i][3]$ 表示前 $i$ 个位置,最后一个为 $RGB$ 的最小修改数,跑一遍 $dp$,再倒着转移把方案构造出来。
菜鸡选手不会写倒着重构 $dp$。
E Array and Segments
给一个序列
现在有 $q$ 次询问,每次将区间 $[l,r]$ 所有位置都 $-1$,现在你需要从询问中选择一些执行,使得序列极差最大,即最大化 $\max a_i - \min a_i$。
对于一类求极差的问题,可以转化为枚举一个,快速计算另外一个。
因此,我们枚举最大值的位置,将所有不包含这个位置的线段全部执行,询问整个区间的最小值,这部分线段树更新和查询即可。
但是此时复杂度为 $O(nm\log n)$。
优化一下,我们可以用类似于双指针的思想,枚举每一个位置时,更新一些询问和撤销一些询问,因此每个询问最多被更新 $2$ 次。
时间复杂度 $O((n+m)\log n)$。
菜鸡选手并不知道极差的套路。
F MST Unification
给一个无向带权连通图,现在你可以将某些边权 $+1$ ,求最小的修改次数使得修改后的最小生成树唯一,且最小生成树权值不增加。
已经求出一棵最小生成树,当且仅当一些非树边的权值等于其对应树上路径的最大边权时,可以将路径上的最大边断掉换成这个非树边。
所以问题转化为快速求得树上一条路径的最大边权,在树上建一棵主席树即可。
菜鸡选手没有思维,只会无脑拍数据结构。