===== A. Nezzar and Board ===== **题目大意**:给你 $n$ 个整数,每次操作可以选取两个整数 $x,y$,将 $2x-y$ 加到集合中。问能否凑出 $k$。 **题解**:注意到可以将所有数加上一个常数,结果不变。不妨将所有数减去 $x_{1}$。现在显然能构造出所有数的倍数。如果 $k-x_{1}$ 不能被这些数的 $\gcd$ 整除,那么显然无解。否则考虑任意两个数 $u,v$ 的 $\gcd$,以及裴蜀定理,$ux+vy=\gcd$。可以证明存在不全为奇数的 $x,y$。这是因为,考虑 $ux'+vy'=0$,其中 $(x',y')=1$,那么 $x',y'$ 中至少有一个奇数。把 $(x',y')$ 与 $(x,y)$ 组合,就很容易构造出一个存在偶数的解。那么这个解显然可以通过 $2x-y$ 得到。 ===== B. Nezzar and Binary String ===== **题目大意**:给你两个 ''%%01%%'' 串 $s,t$,以及 $m$ 次操作 $[l_{i},r_{i}]$。操作时你需要保证 $s[l_{i},r_{i}]$ 中的字符相同,随后你可以修改其中严格小于一半数量的字符。问能否在满足要求的前提下,把 $s$ 修改成 $t$。 **题解**:倒序思考,由于每次只能修改严格小于一半的字符,且修改前所有字符相同,因此把 $t$ 改回去只有一种可能。线段树维护。 ===== C. Nezzar and Nice Beatmap ===== **题目大意**:给定平面上 $n$ 个不同的点,给它们排个顺序,使得任意 $\angle A_{i}A_{i+1}A_{i+2}$ 是严格的锐角。 **题解**:从任意一点出发,走到剩下的点中离它欧氏距离最远的点即可。很容易证明这样不会存在直角或钝角。 ===== D. Nezzar and Hidden Permutations ===== **题目大意**:给出 $m$ 个 ''%%pair%%'' $(l_{i},r_{i})$,要求构造两个 $1\sim n$ 的排列,满足对于每个 ''%%pair%%'',$p_{l_{i}},p_{r_{i}}$ 及 $q_{l_{i}},q_{r_{i}}$ 的大小关系相同,或者说 $(p_{l_{i}}-p_{r_{i}})(q_{l_{i}}-q_{r_{i}})>0$。定义这两个排列的价值是它们不相同的位置数。求最大价值及一种方案。 **题解**:将限制建成一个无向图。若某个点与其它点都有边,那么显然它在 $p,q$ 中必须相同,我们不妨递归地把这样的点删去。那么剩下的点中,每个点的度都不满。 我们构造一种方案,证明这种情况下可以找到两个所有位置都不同的排列。注意到如果能够将图分成几个部分,其中每个部分可以完全重新排列,不同部分之间顺序保持不变即可,这样可以简化问题。其中一种满足要求的结构是菊花图:如果某些点之间的限制的补图是菊花图,即不妨设点 $1$ 与其它点之间没有边,那么可以构造两个排列 $1,2,\ldots,n$ 和 $n,1,2,\ldots,n-1$。 考虑原图的补图的生成森林。由于没有孤立点,因此所有树至少有两个点。我们需要将它们分解成一些菊花图。对于任意一棵树,任取一个非叶子结点作为根,它的儿子中,把所有非叶子的子树递归下去求解,而所有叶子和根组成一个菊花图。 ===== E. Nezzar and Tournaments ===== **题目大意**:有两只队伍,第一只队伍的权值分别是 $a_{1},\ldots,a_{n}$,第二只队伍的权值分别是 $b_{1},\ldots,b_{m}$。现将这 $n+m$ 个人按某种顺序排序,登台表演。有一个分数计数器,开始等于 $k$,假设一个人的权值是 $x$,他前一个人的权值是 $y$(对于第一个人,$y=x$),那么分数计数器增加 $y-x$。但是当分数计数器变为负数是,它会变为 $0$。当前这个人的得分就是分数计数器的值。你需要求出队伍 $1$ 的分数和减队伍 $2$ 的分数和的最大值。 此外,题目有若干修改操作,修改 $a$ 或 $b$,以及若干次询问,给定 $k$ 求答案。 **题解**:考虑一个权值序列 $f_{1},f_{2},\ldots,f_{n+m}$,补充定义 $f_{0}=a_{0}-k$。容易发现 $i$ 的得分 $s_{i}=f_{i}-\min_{0\le j\le i}\{f_{j}\}$。记 $p_{i}=\min_{0\le j\le i}\{f_{j}\}$。 不妨先枚举第一个元素。那么显然,其余元素中,第一只队伍的成员一定在所有第二只队伍的成员后面。考虑 $i$ 属于队伍 $1$,$i+1$ 属于队伍 $2$。交换它们之后,显然 $p_{i}\ge p'_{i+1}$,即队伍 $1$ 的收益不变小,而 $p_{i+1}\le p'_{i}$,即队伍 $2$ 的收益不变大。因此交换一定更优。 第二只队伍一定从大到小排序。考虑两个相邻的队伍二成员 $f_{i}a_{1}$ 时,显然增大 $b_{i}$ 又没有必要了。最终只需要考虑 $a_{1}$ 左右的两个元素。 整个算法可以用一棵平衡树或线段树实现,时间复杂度 $\mathcal{O}(n\log n)$。 真难写啊。 ===== F. Nezzar and Chocolate Bars ===== **题目大意**:有 $n$ 个巧克力棒,每次按长度比例选取其中一根,设它的长度为 $x$,等概率随机 $y\sim U(0,x)$,将它分成 $y,x-y$ 的两根。直到所有棒长度都 $\le k$ 为止。求期望次数。 **题解**:不妨先考虑 $1$ 根巧克力棒。不妨认为巧克力棒并未分开,只是在 $y$ 处打了个标记。不妨设棒的长度为 $1$。那么问题等价于随机选取独立同分布的 $X_{1},X_{2},\ldots,X_{n}\sim U(0,1)$,在这些位置切断。考虑统计量 $X_{(1)},X_{(2)},\ldots,X_{(n)}$,$Y_{1}=X_{(1)},Y_{2}=X_{(2)}-X_{(1)},\ldots,Y_{n}=X_{(n)}-X_{(n-1)}$ 的联合分布为 $n!I_{\{0