CWOI 5.15 模拟赛 T 1-3

T1 比赛

观察到,我们每一个选择都能被唯一的拆成两个选择,比赛的过程可以被看成一棵二叉树,所以可以枚举根节点的选择,如果符合三个的数量就进排序。排序就是尝试交换每一个节点的左右儿子,类似归并排序。

T2 幸运数字

80 分显然直接数位 DP,和正解似乎只有转移类似。

正解是同余最短路,\(\forall x \in [0,a - 1]\),建一条 \(x \to (10x + y) \bmod a,y \in S\) 的边,然后从 \(0\) 开始跑 BFS,再次跑到 \(0\) 说明这是一条最短路,直接一路回溯就能构造出方案了。跑不到就是无解。

T3 匹配

我们发现这个数据范围就很指数复杂度,只是需要一些优化。

我们观察到,一个合法的答案每一个联通块都必须是个完全二分图,所以先用并查集来找到所有联通块。

然后我们发现,本质不同的联通块个数比较少,只有差不多 \(4.3 \times 10 ^ 4\) 个,所以我们直接状压 DP,设 \(dp _ {S,i,j}\) 表示合并 \(S\) 中的联通块,用了 \(i\) 个左边的孤立点,\(j\) 个右边的孤立点的最小代价。

转移就是 \(dp _ {S,i,j} = \min \{ dp _ {T,i - sz _ {0,T},j - sz _ {1,T}} + cost _ {T} \}\)\(cost _ S\) 是让 \(S\) 变为完全二分图的代价,可以直接预处理。

posted @ 2025-05-18 21:19  xguagua_233  阅读(20)  评论(0)    收藏  举报