1 条题解
-
0
D. 有趣还是恐怖? 详细题解
题目核心理解
给定 个节点的无向完全图(对应游戏关卡),部分边已固定为
F/S(数量 )。 你需要将所有?填充为F/S,满足: 无论节点如何排列成路径,连续同色边的长度一定不超过 。 要求输出任意合法方案。
核心思路
1. 关键构造原理
采用不平衡二分图构造,这是满足最长同色路径限制的核心方法:
- 将节点分为小集合 A 和大集合 B
- 集合内部的边全部染成
S - 集合之间的边全部染成
F - 小集合大小取 或 ,大集合大小
2. 合法性保证
- 内部路径长度 ,满足题目要求
- 跨集合路径交替分组,长度也不会超限
- 题目允许的上限 完全覆盖构造结果
3. 已有边约束
- 所有已固定的
S必须在集合内部,不能跨集合 - 已固定的
F自动满足跨集合规则,无需额外处理 - 利用 ,直接枚举子集找到合法的小集合
算法流程
- 设定目标大小:
- 枚举所有节点子集,筛选大小为 或 的子集
- 检查该子集是否合法:所有已固定的 S 边都在子集内部
- 找到合法子集后,按照规则填充所有
?- 同集合 →
S - 不同集合 →
F
- 同集合 →
- 保留输入中已有的
./F/S,输出最终矩阵
公式与复杂度分析
小集合大小:
$$size(A) = \left\lfloor \frac{n}{4} \right\rfloor \ \text{或}\ \left\lfloor \frac{n}{4} \right\rfloor - 1 $$连续同色边上限:
复杂度
- 枚举子集:, 可安全通过
- 构造答案:
- 总时间复杂度:
完全支持题目 的范围,在 秒时限内稳定运行。
- 1
信息
- ID
- 6585
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者