#AEAI07010. 最低总代价恢复状态空间搜索

最低总代价恢复状态空间搜索

题目描述

当执行链路已经失败,恢复规划不再只是找一条路,而是要在多个可恢复状态之间比较总代价。具身智能部把这个过程建成状态空间搜索题。

输入给出恢复状态、转移代价和可执行性条件。你需要使用 Dijkstra 或等价方法找到最低总代价的可执行恢复状态,并在并列时按题面规则输出稳定方案。

请特别注意不可执行状态不能作为答案、转移代价的累加边界、路径重建顺序和 SAFE_STOP 分支。

输入格式

第一行输入恢复初始状态七元组:

pos vis mode path battery risk retry

第二行输入:

max_risk min_battery max_retry max_steps

接下来输入动作数 A。随后 A 行:

aid inc_retry pre_pos pre_vis pre_mode pre_path need_battery arisk dpos dvis dmode dpath dbattery drisk cost

前置字段为 -1 表示不限制;更新字段为 -1 表示保持原值。

输出格式

若恢复成功,输出:

RECOVERED len aid... pos risk battery_used cost

若无法恢复,输出:

SAFE_STOP

判定规则

目标状态必须满足 vis = 1mode >= 1path = 1battery >= min_batteryrisk <= max_risk。动作必须满足所有前置条件、battery >= need_battery、当前 risk <= arisk,执行后 retry <= max_retrybattery >= min_batteryrisk <= max_risk

搜索深度最多 max_steps。在所有恢复方案中,选择总代价小、风险小、动作序列字典序小者。若初始状态已经满足目标条件,输出长度为 0 的恢复结果。

数据范围与测试提示

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

样例

输入样例 1

1 0 0 0 10 1 0
5 1 2 3
2
1 0 -1 0 -1 1 1 5 -1 1 -1 -1 1 0 1
2 0 -1 1 -1 0 1 5 -1 -1 1 1 1 0 2

输出样例 1

SAFE_STOP

输入样例 2

1 0 0 0 1 1 0
5 2 2 1
1
1 0 -1 0 -1 1 2 5 -1 1 -1 -1 1 0 1

输出样例 2

SAFE_STOP