QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2026-02-19 13:14:16

Last updated: 2026-02-19 13:14:20

Back to Problem

题解

我们只需对每个子集计算至少有两个守卫的时间。离散化之后我们对每个时间单位分别考虑,设该时间单位中工作的守卫集合为 $T$,则我们选择的集合需要满足 $|S\cap T|\ge 2$ 才能计入该时间单位的长度。也即 $S$ 不是某个 $\overline T\cup \{x\}$ 的子集,容斥一下可以变成 $O(k)$ 个“给 $S$ 的所有子集答案加上 $v$”的操作,最后一次 FMT 即可。时间复杂度 $O((\sum c_i+2^k)\cdot k)$。

Comments

No comments yet.