训练赛
10.5
G. Yelkrab
考虑前 \(i\) 只小猪,分组,每组 \(j\) 个,第 \(j\) 组权值为 \(SCP\)。
显而易见的先见 trie 树,考虑将一个 \(scp\) 拆开,那么不妨考虑从下往上扩展,对于每个点 \(u\) 来说会形成的组为 \([\frac{siz_u}{k}]\),往上传递 \(siz_u \mod k\)。
所以可以总结出:
考虑动态维护,首先当输入一个字符串进来的时候考虑将其添加至 trie 树中,那么图中的每个点的 siz 会 + 1,容易发现会使 \(f_k\) 变化的只有当 \(siz_u\) 变成 \(k\) 的倍数的时候,所以直接每个点枚举约数,异或的话直接简单修改即可。
H. 保区间最小值一次回归问题
若干个区间混杂在一起非常难处理,先考虑每个位置的下界,即覆盖该点的区间的最大值,记为 \(h_i\),那么对于每个点 \(i\) 来说,考虑先全部变成 $ \geq h_i$ 的数,那么对于每个数来说,要么保持不变,要么变成 \(h_i\) 做贡献。
此时考虑将不同的 \(h_i\) 拆开,对于不同权值互不干扰。
那么接下来变成这样的问题:
有若干个区间,每个点都有权值,选择若干个点使得每个区间内都存在选中的点,且使得权值最小。
令 \(f_i\) 表示 \(R<i\) 的所有区间都已经满足时的最小权值,那么考虑转移:\(f_i = f_j + c_i\)(\(j \geq max(L)\))。
直接用线段树维护即可。
10.8
D. 变幻自在
思维方式值得学习。
-
考虑度为偶数:
考虑前 \((n-1)\) 个点的连边方式,一共有 \(2^{\binom{n-1}{2}}\) 种,\(n\) 需要向所有度为奇数的点连边,应为度为奇数的点一定是偶数个,所以 \(n\) 的连边方式是固定的,所以答案为 \(2^{\binom{n-1}{2}}\)。 -
考虑度为奇数:
因为奇数点的个数为偶数个,所以点为奇数不存在奇数点,所以只考虑偶数点,度为偶数的图的反图就是奇数图,一一对应的,所以答案为 \(2^{\binom{n-1}{2}}\)。
综合一下即可。
E. 签到题
考虑建两棵 fhq-treap,分别维护行和列,查询就找第 \(x\) 个行和第 \(y\) 个列,看一下谁的 id 更大,答案是大的那个的元素。
G. Beautiful Dangos
注意到长度有单调性,所以考虑二分答案,至于验证一个区间,记区间内 3 种颜色的数量分别为 \(n1\geq n2 \geq n3\),如果两边都为最大的颜色,则条件为 \(n1\leq n2+n3+1\),否则为 \(n1 \leq n2+n3\)。
构造的话是大粪,分类讨论。
J. 腐蚀与膨胀
若相邻的操作 \(op\) 相等,那么可以合并。
所以变成形如 \(010101...\) 形式。
观察:合并后,若 \(k_{i-1} \geq k_i\) 且 \(k_{i+1} \geq k\),那么可以合并 \((i-1),i,(i+1)\)。
全部合并完之后序列的 \(k\) 值是严格单调递增的,所以后面直接 \(n^3\) 暴力即可。

浙公网安备 33010602011771号