2023.8.8 练习

GloriousCc / 2023-08-08 / 原文

ARC061E

首先有个套路的想法:以边作点,然后前后缀优化建图,但是这样是麻烦的。
我们重新考虑:
我们发现,如果把同一个公司的联通块处理一下,最短路径其实就是其经过联通块个数。
我们把在同一个联通块的点互相建边,权值为 \(1\)
但是这样是不优的,边数会被卡成 \(n^2\)
我们考虑对每个联通块建立虚点,对一个联通块中的点,向对应的虚点建 \(0.5\) 权值的边即可。

ARC061F

发现所有的牌的方案刚好对应一种出牌顺序。
于是我们只需处理出牌的序列即可。
A 获胜的条件是序列中含有 \(n_1\)\(a\),且最后一位是 \(a\).
而且不能含有 \(n_2+1,n_3+1\)\(b,c\).

我们枚举 \(k\),表示出牌序列有 \(k\)\(b,c\).