1 条题解
-
0
题解
思路
把每个箱子看成一个顶点,分别连出 与 。
做法
由于 都是排列,两张图的每个连通块都是一个有向环。红球只有位于 图中包含 的环上才可能到达 ,蓝球也有同样的必要条件;若有球不满足它就直接无解。在包含 的环上,找到沿有向边到 距离最远的红球,从它到 (不含 )的路径记为序列 。只要依次操作完 ,路径上的其他红球都会一并被带到 ,因此它完整刻画了红球必须按顺序完成的操作;蓝球同理得到序列 。
一组操作能同时完成两种颜色,当且仅当它同时以 为子序列,所以最少操作数是 。
复杂度
两个序列中的箱子编号都不重复,把 中每个编号映射成其位置,再按 的顺序取出这些位置,原 LCS 就变成该位置序列的最长严格上升子序列,可用二分维护最小结尾在 时间内求出;建环、检查可达性和构造序列均为 ,空间复杂度为 。
- 1
信息
- ID
- 1676
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者