P14596 [COCI 2025/2026 #2] 比赛 / Natjecanje

题目背景

本题满分 $110$。

题目描述

在一个 $n\times m$ 的网格上,有 $k$ 个包裹要配送到 $k$ 个不同的格子上。包裹起初在中转站处。 有以下四种格子: - `.`:空格子。 - `#`:障碍物。 - `S`:中转站。 - `X`:包裹要被配送到的格子。 已知:同时至多能带两个包裹;每秒可以向四连通(上下左右)的格子移动一格,但是不能移动到障碍物格子上或者越界。 请求出将所有包裹配送并回到中转站的最短时间,或报告无解。

输入格式

第一行,三个正整数 $n,m,k$($1\le n,m\le 500$,$1\le k\le 67$)。 接下来 $n$ 行,第 $i$ 行一个长度为 $m$ 的字符串 $s_i$,字符集为 $\{\texttt{.},\texttt{\#},\texttt{S},\texttt{X}\}$。$s_{i,j}$ 表示第 $i$ 行第 $j$ 列的格子的类型。 特别地,保证 $\texttt{X}$ 出现恰好 $k$ 次。

输出格式

若无解,输出一行 $-1$。 否则输出一个正整数,表示答案。

说明/提示

### 样例解释 **样例一解释**:先带着一个包裹配送到右下角,回到中转站;然后带着两个包裹依次配送到左上、右上,最后回到起点。 ### 子任务 - $\text{Subtask 1 (17 pts)}$:$k\le 2$; - $\text{Subtask 2 (26 pts)}$:$k\le 16$; - $\text{Subtask 3 (29 pts)}$:$k\le 22$; - $\text{Subtask 4 (38 pts)}$:无额外限制。