ABC433 解题报告

A

略。

B

略。

C

提取极长同色段。

D

考虑一个数在作为操作时的第一个数和第二个数时对余数的贡献。

E

先判掉 \(X\)\(Y\) 中有重复元素的情况。

因为限制和最大值有关,考虑倒序填入每一个数 \(i\)。接下来分类讨论:

  • 如果 \(i\)\(X\)\(Y\) 中都出现过,那么直接放;

  • 如果 \(i\) 只在 \(X\)\(Y\) 中的一个数组出现过,那么在那一行(一列)找一个可以放的空位放即可;

  • 如果 \(i\)\(X\)\(Y\) 中没有出现过,那么任意找一个可以放的空位即可。

一个空位 \((i,j)\) 被称为“可以放的”,当且仅当此时已经枚举到 \(min(X_i,Y_j)\)

接下来就是亿点实现问题。

F

考虑钦定一个位置为 \(1\) 段最后一个位置,然后统计它对答案的贡献。

那么假设该位置左侧有 \(c_0\) 个可以作为 \(1\) 段的位置,右侧有 \(c_1\) 个可以作为 \(2\) 段的位置,那么题目要求的就是:''

\[\begin{aligned} &\sum_{i=1}\binom{c_0}{i-1}\binom{c_1}{i}\\ =&\sum_{i=1}\binom{c_0}{i-1}\binom{c_1}{c_1-i}\\ =&\binom{c_0+c_1}{c_1-1} \end{aligned} \]

最后一步的依据是范德蒙恒等式

G

首先,需要一个可以接受一个字符串的所有子串的“数据结构”——SAM!

因为 SAM 是一个 DAG,所以题目转化为:在一个 DAG 上移动棋子,不能移动者输,问先手是否必胜。

这就是一个经典的博弈论模型。

posted @ 2025-11-23 18:48  XiaoZi_qwq  阅读(51)  评论(0)    收藏  举报