Itinerary Diagnostic / 行程超载体检

行程体检。

把攻略里抄来的打卡点排进每一天,算出到底走不走得完、几点到哪一站,以及该砍掉哪些。不靠感觉,靠一张时刻表。

当天时间窗

当天第 1 站的出发时间
打算几点收工回酒店
% 留给排队、找路、拍照的余量,按时间窗百分比算

诊断结论

正在读取资料库…

行程天数
—
行程点
—
总游玩
—
总在路上
—
路程占比
—
排不下的天
—

添加行程点

留空则自动排到最后
从上一站到这里要多久;第 1 站填 0
同一张表里可以有任意多天,按「第几天」自动分组。示例数据不想要了,直接在时刻表右侧点 × 删掉。

怎么算的

两个核心量

  • 需求时长 = Σ 各站游玩分钟 + Σ 到站路上分钟
  • 机动余量 =(收尾时刻 − 出发时刻)− 需求时长
  • 超载分钟 = 目标机动 − 机动余量,为正即排不下
  • 目标机动 = 时间窗 × 机动比例(默认 15%)

删减建议:精确求解

在「总节省 ≥ 超载分钟」的约束下,求 (必去数, 想去数, 可选数) 字典序最小的方案 —— 先保证不动必去,再保证不动想去,最后才在同层内求删除数量最少。用 0/1 背包逐层 DP 求解,不是贪心。

节省量 = 该站游玩分钟 + 到站路上分钟。删站后其余站点之间的衔接耗时不重算(改道后的路程无法预知),因此这是一个明确声明过的近似,不是精确预测。

明确的边界

  • 到达/离开时刻按线性累加推算,不含实时路况与排队。
  • 出发与收尾时刻是全局设置,所有天共用;某天起止不同的,用机动比例近似。
  • 时间窗设置保存在本机浏览器,不写入数据表。
  • 饭点提示按早餐 06:30–10:00、午餐 11:00–13:30、晚餐 17:00–20:30 三档判断。
  • 页面不引入任何航司、签证、门票等时效性外部数据,避免给你过期信息。