===== A. Omkar and Password ===== 签到题。 ===== B. Omkar and Infinity Clock ===== 签到题。 ===== C. Omkar and Waterslide ===== 签到题。 ===== D. Omkar and Bed Wars ===== 不 WA 就是签到题。 ===== E. Omkar and Duck ===== **题目大意**:给一个 $n\times n$ 的网格,要求你给每个点一个权,使得从左上角仅往右往下的所有 ${2n-2\choose n-1}$ 条路径的权值和各不相同。权 $\le10^{15}$。 **题解**:考虑所有 $x+y=k$ 的点(在一条副对角线上),给所有可能的路径连续编号,那么位于 $(x,y)$ 的点应当占用 ${x+y\choose x}$ 个连续编号,从右上往左下依次从 $0$ 开始编号。由于 $(x,y)$ 的路径数量必然等于 $(x-1,y)$ 的路径数量加上 $(x,y-1)$ 的路径数量,而且 $(x-1,y)$ 和 $(x,y-1)$ 的编号连续,因而我们比较 $(x-1,y)$ 与 $(x,y-1)$ 拼起来的编号区间与 $(x,y)$ 的编号区间,给 $(x,y)$ 一个合适的权值即可。 ===== F. Omkar and Landslide ===== **题目大意**:给一个长为 $n$,单调增的正整数序列 $h$。每次操作时,若 $h_{i}\le h_{i+1}-2$,那么把 $h_{i}$ 加一,$h_{i+1}$ 减一,所有位置同时操作。直到不存在 $h_{i}\le h_{i+1}-2$ 时停止。问最终的序列。 **题解**:首先证明操作一定终止。考虑 $h_{1},h_{2}-h_{1},\cdots,h_{n}-h_{n-1}$,可见一次操作是将相邻三项分别 $+1,-2,+1$。那么该差分序列的字典序是单调增的。 其次需要证明不论使用何种顺序操作,都会得到相同的最终序列。若序列已经是最终序列,那么显然。否则假设有两种不同的操作序列。那么当前序列一定有一个位置 $\alpha$ 可操作。注意到每次操作都不会使得别的位置不可操作(至多使不可操作变得可操作)那么两个序列都必然在某一位置出现 $\alpha$。基于相同的原因,我们把两个序列的 $\alpha$ 都移到开头不会影响序列的合法性,且不影响最终结果。那么归纳即可。 考虑这样的移动策略,从 $1$ 到 $n$ 依次遍历每个 $i$,每当 $h_{i}>=h_{i-1}+2$ 时,就从 $i-1$ 一直操作到 $1$,当然如果有某个 $h_{j}=h_{j+1}$ 操作会停止。注意这样可以保证 $1\sim i$ 中每对相邻元素相差至多 $1$,因而可以得到最终序列。 我们来证明操作的过程中,相邻相等的元素至多有一对。假设当前没有相邻相等的元素,那么可能导致 $h_{1}=h_{2}$,即操作后至多有一对相邻。假设当前有一对相邻相等的元素,设最右的是 $h_{j}=h_{j+1}$,那么操作完后 $h_{j}