1 条题解
-
0
自动搬运
来自洛谷,原作者为

ix35
垒球搬运于
2025-08-24 22:47:57,当前版本为作者最后更新于2023-06-03 23:34:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
紫丁香
先考虑怎么解决一次询问。
二分答案,现在问题转化为给定一个位的集合 ,求是否存在一种方式操作完后 中的位全都是 。将 的限制写成一个由 组成的串 ,为 的位表示操作完之后要是 ,为 的位表示对这一位没有限制。
现在考虑最后一次操作,设这次操作对应的串是 ,那么:
-
中一个为 的位, 中可以是 中的任何一个,因为没有限制。
-
中一个为 的位, 中只能是 ,因为否则最后就会是 。
假设某个 中为 的位,在 中也是 ,那么这一位在更之前的操作中就没有限制了(反正最后一步会变成 ),所以我们可以将 的这一位改成 。
于是判定的过程可以看成这样:
-
每一轮,选出一个满足条件的 ,然后把 中都为 的位在 中改成 。
-
重复上述过程直到 无法再被更新。
最终, 可能还剩下一些 ,这些 无法通过操作产生,我们只需检验初始串 中这些位置是不是都是 ,如果是则说明判定成功,否则判定失败。
直接这么做复杂度可能是 的。
注意到判定过程除了最后一步之外只和 有关,而 只有 种,所以我们不妨对 进行 DP。设 表示 通过上面的更新过程能更新到的 的数量最小的串,再设 表示仅从 开始进行一次操作能够变成 的位的并。
那么,,而 的计算是简单的:比如把操作记在某个对应的 上,然后做个高维前缀或即可。
预处理 后,我们就可以 或 地进行二分答案中的一次判定。
总复杂度 。
-
- 1
信息
- ID
- 8549
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者