yuanshen。

3rd ucup stage 35 G

考虑序列上的问题怎么做:贪心。

类似于网络赛 1,正着做和倒着做是等价的,我们考虑分别从 u,v 开始往上跳,贪心分组,跳到距离 lca 最近的点。

具体的,\(f(u, j)\) 表示从 u 开始向上跳,分了 \(2^j\) 个组能跳到的最远的点,不难发现跳到距离 lca 最近的点之后,剩下的段贡献为 1 或 2。

预处理求 f 和 lca,每次询问倍增即可。

3rd ucup stage 35 D

\(j\) 表示 lucy 取数时序列的长度。

考虑求 \(E[X_j]\),类似于经典拆贡献的结论,可以把它拆成:\(E[X_j] = P(X_j > 0) + P(X_j > 1) + ... + P(X_j > n)\)

进一步,\(E[X_j] = \sum_{i=0}^{n} [1 - P(X_j \geq i)] = n + 1 - \frac{1}{\binom{n}{k}} \sum_{i=k}^{n} \binom{i}{k} = n + 1 - \frac{n + 1}{j + 1}\)

答案为 \(\frac{1}{n} \sum_{j = 1}^{n} E[X_j] = n + 1 - \frac{n + 1}{n} (H_{n + 1} - 1)\)。其中 \(H_n\) 为调和级数。

3rd ucup stage 35 I

首先先拆开完全平方。令 \(t = \lfloor \frac{A_i}{A_j} \rfloor\)。注意到从小到大排序后,对于固定的 \(A_i\),相同的 t 对应一个区间,可以二分求出这个区间的左右端点。

如何枚举 t?注意到数据随机,两个数的商是 log 级别的,所以考虑固定 \(A_j\),枚举 \(A_j\) 的倍数。

2023 Xi'an Regional F

组合数取模考虑卢卡斯定理,相当转化成 p 进制数考虑。

\(f(i, t)\) 表示考虑了 p 进制下前 i 位,组合数取模的乘积为 t 的方案数。转移考虑每次加一位进来,是 \(p^2k\) 的。

由于转移满足结合律,可以类似于快速幂转移,这样就是 \(p^2 \log k\) 了。注意到转移的第二维类似于卷积,我们找出一个 p 的原根,然后把下标取离散对数,就变成卷积形式了,这样就是 \(p \log p \log k\)

2023 Xi'an Regional H

考虑分治,对于每个区间我们需要按照 level 从小到大排序,就能快速找出哪些数可以多赢一轮。条件是:区间内大于这个数的数不能超过 k 个,且这个数大于等于 \(2^j\),j 为轮数。

所以做个归并排序,每个区间判断一下哪些合法就行了。

2nd ucup stage 14 F

注意到最多只会用一次异或操作。

按位从高到低考虑,对于每一位,合法的状态是 0000...01111...1 和 1111...10000...0。后者可以通过异或来变成前者。将序列排序成上述两种情况,只要考虑当前为 1 时,前面 0 的个数;当前为 0 时,前面 1 的个数(因为是冒泡排序,所以按照原有的顺序移动是步数最少的)。

那么对于每一位,我们先求出这一位的两种步数,然后按照当前位是 0 还是 1 分类,分解成两个下一位的子问题。

The 2025 ICPC South America - Brazil First Phase D

我们可以先求出 所有骨牌都用了 的合法方案有哪些,再通过一次 sosdp 就能求出合法子集的方案。

如何判断合法方案?考虑转成图论问题,对于骨牌 (u, v),将 u 和 v 之间连一条无向边,那么一种骨牌的方案合法当且仅当这个图上存在 欧拉路径

如何判断欧拉路径?首先度数为奇数的点不能超过两个,其次度数不为 0 的连通块个数只能为 1。

所以二进制枚举所有骨牌的方案,判断是否合法,最后做一次 sosdp。

2025 北京市赛 H

posted @ 2025-10-09 11:45  Nylch  阅读(13)  评论(0)    收藏  举报