#AEAI07005. 遮挡与容量约束下的桌面整理
遮挡与容量约束下的桌面整理
题目描述
桌面整理看起来像简单搬物体,但遮挡依赖、容器容量和执行顺序会让计划变复杂。具身智能部希望你把这些约束压成一个小规模、可验证的规划题。
本题给出物体、遮挡关系、容量限制和可执行动作。你需要在满足依赖的前提下枚举或动态规划子集状态,选出题面定义的最优整理方案;无法完成时输出安全停止。
请保持依赖方向、容量边界和方案序列比较完全一致,尤其不要在样例之外自行放宽遮挡约束。
输入格式
第一行输入五个整数:
N K max_actions max_risk high_thr
第二行输入 K 个整数,表示各容器容量。
接下来 N 个物体,每个物体格式为:
target vol value priority risk grasp move dep_count dep_1 ... dep_dep_count block_count block_1 ... block_block_count
target 为 1-based 容器编号,依赖和遮挡对象编号均为 1-based。
输出格式
若存在可执行整理方案,输出:
SUCCESS len item_seq... | target_seq... value risk move
若只能完成部分物体,第一项为 TASK_FAILED,其余格式相同。若没有任何可行选择,输出 SAFE_STOP。
判定规则
选择一个非空物体子集,大小不超过 max_actions。被选物体必须 grasp = 1,其依赖对象和遮挡对象也必须在同一子集中;对应容器剩余容量必须足够,累计风险不能超过 max_risk。
方案价值为所选物体 value 之和,高优先物体数量为 priority >= high_thr 的个数。按总价值大、高优先数量大、风险小、移动代价小、物体数少、物体编号序列字典序小选择。若选中全部物体输出 SUCCESS,否则输出 TASK_FAILED。
数据范围与测试提示
- 所有编号均按题面说明使用 1-based;字符串枚举按输入原样比较。
- 正式测试会覆盖安全停止、无可行分支、阈值等号、并列比较和恢复失败等边界情况。
- 输出只包含题目要求的字段,不要输出调试信息。
样例
输入样例 1
2 1 2 5 5
5
1 2 5 6 1 1 2 0 0
1 3 8 4 1 1 3 1 1 0
输出样例 1
SUCCESS 2 1 2 | 1 1 13 2 5
输入样例 2
2 1 2 5 5
3
1 2 5 6 1 1 2 0 0
1 3 8 4 1 1 3 1 1 0
输出样例 2
TASK_FAILED 1 1 | 1 5 1 2