Public Round #2 将在 2022 年 4 月 9 日 8:30 举行!比赛将进行 4.5 小时,共 3 道题,OI 赛制。难度可以近似为省选。
本次模拟赛的搬题人为 cdw, p_b_p_b,组题人为 cdw。
赛后会公开原题链接和题解链接。
特别提醒:本次比赛的题目均为原题,但为了比赛的公平性,请勿在比赛时尝试查找原题地址。如不幸见过原题,请向管理员报告。
欢迎加入 Public Judge 用户群(1009677675)。
Public Round #2 将在 2022 年 4 月 9 日 8:30 举行!比赛将进行 4.5 小时,共 3 道题,OI 赛制。难度可以近似为省选。
本次模拟赛的搬题人为 cdw, p_b_p_b,组题人为 cdw。
赛后会公开原题链接和题解链接。
特别提醒:本次比赛的题目均为原题,但为了比赛的公平性,请勿在比赛时尝试查找原题地址。如不幸见过原题,请向管理员报告。
欢迎加入 Public Judge 用户群(1009677675)。
题目来源:ABC239 Task Ex (Dice Product 2)
Atcoder 链接:https://atcoder.jp/contests/abc239/tasks/abc239_h
设 $f_i$ 表示当前 $M=i$ 的期望时间,则有 $\displaystyle f_i=1+\frac 1n\sum_{j=1}^n f_{ij}$。
此时我们发现,$\left\lfloor\dfrac mi\right\rfloor$ 相同的 $i$,$f$ 值一样。
所以我们可以设 $g_i$ 表示 $M=1,m=i$ 的值。答案即为 $g_m$。
则有 $\displaystyle g_i=1+\frac 1n\sum_{j=1}^n g_{\lfloor\frac ij\rfloor}$,记忆化搜索即可。
复杂度与杜教筛相同,为 $\displaystyle \int^\sqrt m_2\left(\sqrt x+\sqrt\frac mx\right)\mathrm dx=\mathcal O(m^\frac 34)$。
题目来源:Romanian Master in Informatics 2021, Day 2, Task "Paths".
QOJ 链接:https://qoj.ac/problem/2812
引理 1. 守卫所选目的地均为叶子。
引理 2. $k$ 次贪心选择使得答案增加尽可能多的叶子即可。
证明. 设第 $i$ 次选择的叶子是 $\text{leaf}_i$,答案对应增加了 $a_{\text{leaf}_i}$ 到 $\text{leaf}_i$ 的链;若最优解包含 $\text{leaf}_1,\cdots,\text{leaf}_{i-1}$ 但不包含 $\text{leaf}_i$,
以 $1$ 为根,设 $\text{down}_v$ 表示 $v$ 子树内距离 $v$ 最远的叶子,$\text{up}_v$ 表示 $v$ 子树外距离 $v$ 最远的叶子。
引理 3. 对于 $r=1$ 的情况,设选择叶子 $x$ 时答案对应增加 $a_x$ 到 $x$ 的链,则 $a_x$ 即为最深的祖先 $v$ 使得 $\text{down}_v\ne x$(若不存在则认为 $v=r$)
引理 4. 将根从 $r$ 移向儿子 $q$ 时,所有 $a_x$ 中仅有 $\text{up}_q$ 和 $\text{down}_q$ 的值会从 $r$ 变为 $q$,其他均不变。
对 $r$ 进行 DFS,维护每个叶子 $x$ 对应的答案增量,支持多重集的单点修改和查询前 $k$ 大值之和即可,时间复杂度 $\mathcal O(n\log n)$。
题目来源:JOISC 2020 Day2 T3 (Ruins 3) (第 19 回日本情報オリンピック 春季トレーニング合宿)
考虑 $h \to p$ 的过程。
初始时序列 $B$ 全为 $0$。从 $2n$ 到 $1$ 考虑将 $h_i$ 加入序列 $B$,枚举 $j$ 从 $h_i$ 到 $1$,若 $B_j$ 为 $0$,则在这里填入 $i$。如果没有这样的位置,则其不在 $p$ 中现身。否则令 $p_{B_i}=i$。
而这样,每个位置是否存活取决于 $\textrm{mex}(B)$ 与 $h_i$ 的大小关系。
设 $f_{i, j}$ 表示 $2n$ 到 $i$,$\textrm{mex}=j+1$ 的方案数。答案为 $f_{1, n}$。
为了转移方便,我们可以把高度相同的两个柱子看成不同的元素,最后除以 $2^n$ 即可。
若 $i$ 没有在 $p$ 中出现过,则 $j\geq h_i$,$\textrm{mex}$ 不会改变。$f_{i, j}\leftarrow cf_{i+1, j}$,其中 $c$ 为可以放的数字个数,为 $j-$ 之前放过的无效数字个数。这是由于 $\textrm{mex}$ 是不降的。
若 $i$ 出现过,且没有改变 $\textrm{mex}$,我们将它搁置,直到 $\textrm{mex}$ 改变时统计。因为我们并没有记录除了 $\textrm{mex}$ 之外的信息。$f_{i, j} \leftarrow f_{i+1, j}$。
若 $\textrm{mex}$ 改变了,考虑新的 $\textrm{mex}=j+k$,则考虑先选出 $k-1$ 个在序列中出现过的位置,和 $i$ 在 $B$ 中构成了 $(j, j+k]$。之后再考虑他们的 $h$ 值。要满足 $\leq j+s$ 的数不得超过 $s$ 个。否则就会有一个数走向 $0$,不在 $p$ 中现身。
设这样的方案数为 $g_k$ ,则 $g_k$ 可以非常简单地预处理。
最后,$h_i$ 的取值为 $[j, j+k]$,故乘 $k+1$。
故 $\displaystyle f_{i, j+k}\leftarrow (k+1)\binom {c-j-1}{k-1}g_{k}f_{i+1, j}$。
时间复杂度 $\mathcal O(n^3)$。