「EVOI-RD1」飞鸟和蝉
题目背景
你骄傲地飞远,我栖息的叶片。
听不见的宣言,重复过很多年。
沧海月的想念羽化我昨天,
在我成熟的笑脸,
你却未看过一眼。
题目描述
蝉 Charlie 要去寻找他的好朋友飞鸟了。
具体来说,Charlie 和他的好朋友生活的地方可以看作一个 $n \times m$ 的网格,左上角为 $(1,1)$,右下角为 $(n,m)$。每个格子 $(i,j)$ 有一个海拔高度 $h_{i,j}$。Charlie 的目标是从他的家 $(x_0,y_0)$ 出发,不重不漏地经过网格中的每个格子**恰好一次**,**最终回到自己的家** $(x_0,y_0)$。Charlie 有两种移动方式:
1. 跳跃。用这种方式,Charlie 可以到达上下左右 $4$ 个相邻格子中**海拔严格低于当前格子**的一个格子。注意跳跃不消耗体力。
2. 飞行。用这种方式,Charlie 可以从当前格子 $(x,y)$ 到达网格中**任意一个**格子 $(x',y')$,并消耗 $h_{x',y'}-h_{x,y}$ 个单位的体力。**注意飞行所消耗的体力值可以是负数**。
Charlie 希望用尽量少的飞行次数完成目标,**在此前提下**再令消耗的体力最少。由于网格实在太大了,Charlie 希望你能帮助他。
输入输出格式
输入格式
第一行四个整数,分别代表 $n,m,x_0,y_0$,含义如上所述。
接下来 $n$ 行,每行 $m$ 个整数,第 $i$ 行第 $j$ 个数代表格子 $(i,j)$ 的海拔 $h_{i,j}$。
输出格式
一行两个整数,分别代表“飞行的最少次数”与“飞行次数最少的前提下消耗的最少体力值”。
输入输出样例
输入样例 #1
3 3 1 1
1 2 3
8 9 4
7 6 5
输出样例 #1
1 8
输入样例 #2
3 3 2 3
1 2 3
2 2 4
1 2 2
输出样例 #2
5 4
输入样例 #3
4 4 2 3
5 9 6 2
4 2 3 6
7 2 5 2
4 2 3 9
输出样例 #3
7 25
输入样例 #4
10 10 3 3
9 13 7 7 3 8 6 5 12 8
1 4 10 11 9 10 13 6 2 18
3 3 19 6 14 2 19 10 2 16
3 1 11 14 14 18 8 8 16 14
13 5 7 4 11 17 3 16 10 20
10 16 12 19 14 12 11 20 15 10
10 15 5 1 16 2 7 5 14 5
3 19 12 19 8 13 17 7 10 13
2 10 17 6 8 11 8 7 1 4
3 7 8 1 3 5 4 11 9 17
输出样例 #4
36 254
说明
**本题采用捆绑测试**
样例 1 解释:从 $(1,1)$ 飞到 $(2,2)$,再绕一圈即可。
样例 2 解释:一种最佳方案为:$(2,3)-(1,3)-(1,2)-(1,1)=(2,1)-(3,1)=(2,2)=(3,2)=(3,3)=(2,3)$,其中 $=$ 代表飞行。
- Subtask 1 (10 pts):满足 $1 \leq n,m \leq 3$。
- Subtask 2 (20 pts):满足 $1 \leq n,m \leq 5$。
- Subtask 3 (20 pts):保证至多有两种不同的海拔高度。
- Subtask 4 (50 pts):无特殊限制。
对于 $100\%$ 的数据:
- $1 \leq n,m \leq 50$。
- $1 \leq x_0 \leq n,1 \leq y_0 \leq m,1 \leq h_{i,j} \leq 10^9$。
出题人:[冷月葬T魂](https://www.luogu.com.cn/user/340903)