#AEAI07011. 多机器人资源预约与失败替代分配

多机器人资源预约与失败替代分配

题目描述

多机器人协作时,任务分配不能只看单个机器人最快,还要考虑资源预约、依赖顺序和失败替代。具身智能部把小规模分配问题做成可枚举的评测任务。

你需要枚举每个任务由哪台机器人执行或是否启用替代方案,检查依赖、资源占用和失败约束,并选出题面定义下最优的分配结果。

请保持机器人编号、任务编号和依赖校验的 1-based 语义;无可行分配时必须输出安全停止。

输入格式

第一行输入四个整数:

R T max_risk high_thr

接下来 R 行机器人信息:

rid energy capacity tool

随后 T 个任务,每个任务格式:

tid value priority risk duration req_tool load dep_count dep_1 ... dep_dep_count fail

最后输入一个 R x T 的代价矩阵 cost,表示机器人执行任务的额外能耗。

输出格式

若存在可行分配,输出:

SUCCESS value time risk assign_1 ... assign_T high_count

assign_i = 0 表示任务 i 不执行,否则为执行该任务的机器人序号。若没有正收益可行分配,输出 SAFE_STOP

判定规则

每个任务可以不分配,也可以分配给一台机器人。分配任务必须满足:若任务 fail = 1,不能分给 rid = 1 的机器人;若 req_tool != 0,机器人工具必须匹配;load <= capacity;任务风险 risk <= max_risk;所有依赖任务必须也被执行。机器人剩余能量必须能支付 cost + duration

方案总价值为已执行任务价值和,风险为任务风险和,时间为单个任务消耗的最大值,能耗为总消耗。按高优先任务数量大、总价值大、风险小、时间小、能耗小、分配序列字典序小选择。

数据范围与测试提示

  • 所有编号均按题面说明使用 1-based;字符串枚举按输入原样比较。
  • 正式测试会覆盖安全停止、无可行分支、阈值等号、并列比较和恢复失败等边界情况。
  • 输出只包含题目要求的字段,不要输出调试信息。

样例

输入样例 1

2 2 5 5
1 10 5 1
2 10 3 2
1 8 8 1 2 1 3 0 0
2 5 4 1 2 2 2 0 0
3 9
9 3

输出样例 1

SUCCESS 13 5 2 1 2 1

输入样例 2

1 1 5 5
1 10 5 1
1 8 8 1 2 2 3 0 0
3

输出样例 2

SAFE_STOP