编程题:模拟+二分搜索
米尔科在山里的一个小镇上找到了一份邮递员的工作。城镇可以用$$N×N$$矩阵表示。每个区域都包含以下内容之一:用“$$K$$”表示的房屋、用“$$P$$”表示的邮局或用“.”表示的牧场。此外,每个字段都指定了一个高度。
每天早上,米尔科把邮件送到镇上所有的房子。他从“$$P$$”字段开始,该字段代表镇上的一家邮局。米尔科只能水平、垂直和对角移动到相邻的广场。一旦他送完最后一封信,他就必须回到邮局。
米尔科一点也不知道他的工作会有多累。让米尔科在投递邮件时访问的最高和最低区域的高度之差等于他的疲劳程度。帮他解决问题,让米尔科尽可能少的疲劳来递送所有邮件。
### 输入格式:
第一行输入包含一个整数$$N(2≤N≤50)$$。
以下$$N$$行表示相应矩阵行中的字段。字符“$$P$$”将只出现一次,而字符“$$K$$”将至少出现一次。
以下$$N$$行分别包含$$N$$个正整数,即对应矩阵行中字段的高度。这些值不到$$1000000$$。
### 输出格式:
在一行输出中,打印一个表示最小疲劳程度的整数。
### 输入样例1:
in
2
P.
.K
2 1
3 2
### 输出样例1:
out
0
### 输入样例2:
in
3
P..
.KK
...
3 2 4
7 4 2
2 3 1
### 输出样例2:
out
2
### 输入样例3:
in
3
K.P
...
K.K
3 3 4
9 5 9
8 3 7
### 输出样例3:
out
5
### 第一个示例描述:
从邮局开始,米尔科可以直接搬家到现场,递送邮件,然后返回邮局。由于带邮局的场地和带房子的场地海拔相同,米尔科的疲劳度等于零。
答案:若无答案欢迎评论
每天早上,米尔科把邮件送到镇上所有的房子。他从“$$P$$”字段开始,该字段代表镇上的一家邮局。米尔科只能水平、垂直和对角移动到相邻的广场。一旦他送完最后一封信,他就必须回到邮局。
米尔科一点也不知道他的工作会有多累。让米尔科在投递邮件时访问的最高和最低区域的高度之差等于他的疲劳程度。帮他解决问题,让米尔科尽可能少的疲劳来递送所有邮件。
### 输入格式:
第一行输入包含一个整数$$N(2≤N≤50)$$。
以下$$N$$行表示相应矩阵行中的字段。字符“$$P$$”将只出现一次,而字符“$$K$$”将至少出现一次。
以下$$N$$行分别包含$$N$$个正整数,即对应矩阵行中字段的高度。这些值不到$$1000000$$。
### 输出格式:
在一行输出中,打印一个表示最小疲劳程度的整数。
### 输入样例1:
in
2
P.
.K
2 1
3 2
### 输出样例1:
out
0
### 输入样例2:
in
3
P..
.KK
...
3 2 4
7 4 2
2 3 1
### 输出样例2:
out
2
### 输入样例3:
in
3
K.P
...
K.K
3 3 4
9 5 9
8 3 7
### 输出样例3:
out
5
### 第一个示例描述:
从邮局开始,米尔科可以直接搬家到现场,递送邮件,然后返回邮局。由于带邮局的场地和带房子的场地海拔相同,米尔科的疲劳度等于零。
答案:若无答案欢迎评论