日记 2023.11.10:2023 syzx 秋季训练 6

发布时间 2023-11-10 21:54:12作者: caijianhong

日记 2023.11.10:2023 syzx 秋季训练 6

*HI

A

拆位,带权并查集 / 二分图判定。

B

按位做差,于是只需要一次 bfs。

bonus:长度 \(\leq 5000\)(单次)或 \(\leq 20\)(多次)

https://codeforces.com/problemset/problem/1852/C?不是同一题。

C

分类讨论。钦定 \(A\leq B\)

必然有一维,满足两个端点的差 \(\geq A+B\)。那么另一维要么是直接包含,要么有交集,要么分离。然后等差数列求和。

另一种做法,两个东西相交,考虑两维的投影,是 \([0,n]\) 中的两条长为 \(A,B\) 的线段有交,这个东西的方案数的平方。想要求出线段有交的方案数,只需要改成分离之后疯狂分段。

D

分治构造。

改成没有奇环。分治之后,左右两边二分图连边,然后递归下去,同一层同一颜色,这样相同颜色就都是二分图,没有奇环的存在。

__builtin_ctz(u xor v)

E

结论:拥有偶数条边的连通图,线图的最大权匹配是所有边的和。

奇数条边的情况,就是要拆一条边。如果拆这条边之后图连通,那么可以拆;如果拆了之后两个连通块都有偶数条边,也可以拆;否则拆了不好。

F

容斥。有多少完美匹配不包含树边呢?那就钦定有 \(i\) 条树边选上,假设钦定 \(i\) 条树边的方案数是 \(f_i\)(注意不能有公共点),则答案是

\[\sum_{i=1}^n(-1)^if_ig_{2n-2i} \]

\(g_i\) 表示 \(i\) 个点的完全图的完美匹配方案数,可以递推。\(f_i\) 可以树形背包。\(O(n^2)\)

G

答案 \(\leq 200\) 是因为我们可以安排顺序使得最后一个人等待 100s 之后再出发。

二分答案,拆点网络流,将时间分层,还要拆入点和出点使得两个人不在同一个格子。

流量限制全为一,所以方案就是所有有过流量的边。

可以不用二分,每一次增流即可。

H(WIP)

跳 border。维护现在的答案串,每次加入一个字符之后暴跳 border 更新答案和 border。啊?删除的过程实际上是线性。

I

答案串形如 fffeeeeedddcccbaaaa

考虑暴力这么暴力的,因为答案串第一位取到本质不同字符数,所以如果枚举答案串的每个字符对应是什么,从前往后最大化字符长度。

状压 DP。记录当前用掉的字符串,记录最终的字符串每个字符的出现次数,同时记录这样搞最少需要到那里(就是记录 \(y\),已经填的最后一个字符最后出现是 \(y\),要求 \(y\) 尽量小,下一次从 \(y+1\) 开始决策)。\(O(2^kk^2),k=20\)

J(WIP)

egf