这怎么做c++
  • 板块学术版
  • 楼主lyhl
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/5/7 13:31
  • 上次更新2023/10/28 01:59:47
查看原帖
这怎么做c++
384219
lyhl楼主2022/5/7 13:31
  爱丽丝是一个出色的特工,可是他不会游泳。 为了营救他的同伴,他偷偷潜入了敌国阵地,敌国阵地是一个 N×N 个小正 方形组成的大正方形。我们使用行号和列号给每个小正方形编号,行号从上到 下、列号从左到右依次编号为 1~N。有的小方格是陆地,标记为 1;有的小方格 是湖,标记为 0。 起初爱丽丝潜入地点是 r1 行 c1 列,记为(r1,c1)。被营救的同伴被关在 r2 行 c2 列,记为(r2,c2)。 爱丽丝可以向上下左右任一方向移动,前提是都是陆地。可惜的是仅仅在 陆地上移动,不一定能够从(r1,c1)到达(r2,c2),这就需要你来帮助爱丽丝 了,你可以在任意两个陆地(rs,cs)和(rt,ct)间打通一个传送门,打通传送门 的成本是(rs-rt)^2+(cs-ct)^2。 你最多只能帮助爱丽丝打通一个传送门,请你计算出最少需要的成本。如 果不用打通传送门,爱丽丝就能从(r1,c1)到达(r2,c2),则成本为 0; 

输入 第 1 行包含一个整数 N(1≤N≤100)。 第 2 行包含两个整数 r1 和 c1,以空格隔开。 第 3 行包含两个整数 r2 和 c2,以空格隔开。 以下 N 行,第 i 行一个 01 串,其中第 j 个字符,表示敌国阵地第 i 行第 j 列的小正方形是陆地(用 1 表示)还是湖(用 0 表示)。 输出 输出仅一行,一个整数,表示你所搭建传送门的最低成本。

样例输入

5

1 1

5 5

11110

00000

11000

11001

11001

样例输出

10

提示

输入/输出例子2

输入:

3

1 3

3 1

101

010

101

输出:

8 样例解释

【样例说明】:

样例 1:应该在(1,4)和(4,5)之间创建一个传送门。 这样做的成本是(1- 4)^2+(4-5)^2=10;

样例 2:应该在(1,3)和(3,1)之间创建一个传送门。这样做的成本是(1- 3)^2+(3-1)^2=8。

【时间限制、数据范围及描述】:

时间:1s 空间:256M

对于 20%的数据:1≤N≤10;

对于 50%的数据:1≤N≤50;

对于 100%的数据:1≤N≤100;

2022/5/7 13:31
加载中...