训练赛

10.5

G. Yelkrab

考虑前 \(i\) 只小猪,分组,每组 \(j\) 个,第 \(j\) 组权值为 \(SCP\)。

显而易见的先见 trie 树,考虑将一个 \(scp\) 拆开,那么不妨考虑从下往上扩展,对于每个点 \(u\) 来说会形成的组为 \([\frac{siz_u}{k}]\),往上传递 \(siz_u \mod k\)。

所以可以总结出:

\[f_{k} = \sum_u \lfloor \frac{siz_u}{k} \rfloor \]

考虑动态维护,首先当输入一个字符串进来的时候考虑将其添加至 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\) 暴力即可。

I. 神隐

posted @ 2026-10-05 19:34  Harvey-zhuhy  阅读(3)  评论(0)    收藏  举报