#P7863. 「EVOI-RD1」飞鸟和蝉

    ID: 7102 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>图论建模二分图费用流

「EVOI-RD1」飞鸟和蝉

题目背景

你骄傲地飞远,我栖息的叶片。
听不见的宣言,重复过很多年。
沧海月的想念羽化我昨天,
在我成熟的笑脸,
你却未看过一眼。

题目描述

蝉 Charlie 要去寻找他的好朋友飞鸟了。

具体来说,Charlie 和他的好朋友生活的地方可以看作一个 n×mn \times m 的网格,左上角为 (1,1)(1,1),右下角为 (n,m)(n,m)。每个格子 (i,j)(i,j) 有一个海拔高度 hi,jh_{i,j}。Charlie 的目标是从他的家 (x0,y0)(x_0,y_0) 出发,不重不漏地经过网格中的每个格子恰好一次最终回到自己的家 (x0,y0)(x_0,y_0)。Charlie 有两种移动方式:

  1. 跳跃。用这种方式,Charlie 可以到达上下左右 44 个相邻格子中海拔严格低于当前格子的一个格子。注意跳跃不消耗体力。
  2. 飞行。用这种方式,Charlie 可以从当前格子 (x,y)(x,y) 到达网格中任意一个格子 (x,y)(x',y'),并消耗 hx,yhx,yh_{x',y'}-h_{x,y} 个单位的体力。注意飞行所消耗的体力值可以是负数

Charlie 希望用尽量少的飞行次数完成目标,在此前提下再令消耗的体力最少。由于网格实在太大了,Charlie 希望你能帮助他。

输入格式

第一行四个整数,分别代表 n,m,x0,y0n,m,x_0,y_0,含义如上所述。
接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个数代表格子 (i,j)(i,j) 的海拔 hi,jh_{i,j}

输出格式

一行两个整数,分别代表“飞行的最少次数”与“飞行次数最少的前提下消耗的最少体力值”。

3 3 1 1
1 2 3
8 9 4
7 6 5
1 8
3 3 2 3
1 2 3
2 2 4
1 2 2
5 4
4 4 2 3
5 9 6 2
4 2 3 6
7 2 5 2
4 2 3 9
7 25
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
36 254

提示

本题采用捆绑测试

样例 1 解释:从 (1,1)(1,1) 飞到 (2,2)(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):满足 1n,m31 \leq n,m \leq 3
  • Subtask 2 (20 pts):满足 1n,m51 \leq n,m \leq 5
  • Subtask 3 (20 pts):保证至多有两种不同的海拔高度。
  • Subtask 4 (50 pts):无特殊限制。

对于 100%100\% 的数据:

  • 1n,m501 \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魂