CF1218C Jumping Transformers

题目描述

你,强大的 Blackout,正站在 $N \times M$ 矩阵的左上角 $(0,0)$。你每秒必须向右或向下移动一格。 矩阵中有 $K$ 个变形金刚在跳跃。每个变形金刚从位置 $(x, y)$、在时间 $t$ 开始跳跃,每秒跳到下一个位置。$x$ 轴向下增长,$y$ 轴向右增长。跳跃的顺序为 $ \{(x, y), (x+d, y-d), (x+d, y), (x, y+d)\} $,并且循环往复。在时间 $t$ 之前,变形金刚不会出现在矩阵中。 你需要到达右下角 $(N-1, M-1)$,途中如果遇到变形金刚(可能有多个),你必须全部击杀,并损失击杀每个变形金刚所需的能量之和。 被击杀的变形金刚会立刻消失,不再跳跃。请输出 Blackout 到达右下角所需消耗的最小能量。

输入格式

第一行包含整数 $N$、$M$($1 \leq N, M \leq 500$),表示矩阵的大小,以及 $K$($0 \leq K \leq 5 \times 10^5$),表示变形金刚的数量。 接下来的 $K$ 行,每行包含 $x$、$y$、$d$($d \geq 1$)、$t$($0 \leq t \leq N+M-2$)、$e$($0 \leq e \leq 10^9$),分别表示变形金刚的起始坐标、跳跃模式中每步的距离、开始跳跃的时间,以及击杀该变形金刚所需的能量。 保证每个变形金刚的 4 个跳跃点都在矩阵范围内。

输出格式

输出一个整数,表示 Blackout 到达右下角所需消耗的最小能量。

说明/提示

如果 Blackout 选择从 $(0, 0)$ 走到 $(2, 0)$,再从 $(2, 0)$ 走到 $(2, 2)$,他需要击杀第一个和第三个变形金刚,总能量消耗为 9。不存在能量消耗更少的路径。 由 ChatGPT 4.1 翻译