MITIT Spring 2025 Finals Round
A. Beautiful Bracelets
首先答案有一个下界是 \(\max cnt_i + 1\)。
可以构造达到这个下界,如:1 1 2 2 3 3 4
,4 3 2 1 3 2 1
。
B. Mashup
可以发现一个关键性质,每个难度最后对应的题目数量是确定的。
然后就转化为:每个点可以匹配一个区间的点 的匹配个数 mod 2。这是经典问题,只需要连边 \((l-1,r)\) 判是不是生成树。
C. Escape Room
首先有解的必要条件是:
- 如果 \(S\) 是 \(1\) 则 \(S\) 的超集是 \(1\),对于 \(0\) 则是子集同理。
- 对于两个集合 \(S,U \setminus S\) 如果 两个集合都是 \(0\) 则不合法,因为完全图的边不可以分为两个不连通的图。
下面来构造证明是充分的。
找到所有最紧的,是 0
的颜色集合,把每个这种颜色集合的补集放进 \(\{ S \}\)。我们尝试构造一些点,使得去掉 \(S_i\) 后 \(i\) 会变成孤立点。
对于 \(S_i,S_j\),一定能找到一种颜色 \(c\in S_i \cap S_j\),否则和上面的条件 2 矛盾,于是可以连边 \(c\)。
但这样还不能保证去掉 \(S_i\) 后 多一种颜色就连通了。
于是可以再构造一个 \(2k\) 个点的辅助图,边由 \(k\) 个不同颜色的生成树构成(这个是经典的构造)。把每个 \(i\) 都连所有 \(S_i\) 中的颜色的边到辅助图就行,这样少去掉一种颜色就连通了。
D. Scary Subsequences
判定转容斥计数:转成统计有多少 \(len\) 长度的,本质不同的 \(s\) 的子序列,\(s,x\) 的子序列,\(s,x,y\) 的子序列...
然后由于 \(x,y,z\) 一定是 \(s\) 的子序列,所以后面的就是算 \(\{x,y,z\}\) 某个子集 的子序列,可以预处理。每次询问就只要算 \(s\) 的子序列个数,而且在 \(len>\max(|x|,|y|,|z|)\) 时就不用算了。