题目名称 | 2070. 万圣节后的早晨 |
---|---|
输入输出 | celtic.in/out |
难度等级 | ★☆ |
时间限制 | 5000 ms (5 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | Skyo 于2015-10-27加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:3, 提交:15, 通过率:20% | ||||
Hellc | 100 | 1.765 s | 128.32 MiB | C++ |
Hellc | 100 | 2.490 s | 80.32 MiB | C++ |
Hellc | 100 | 5.707 s | 0.32 MiB | C++ |
Hellc | 0 | 0.000 s | 0.00 MiB | C++ |
Hellc | 0 | 0.000 s | 80.32 MiB | C++ |
Hellc | 0 | 0.000 s | 128.32 MiB | C++ |
Hellc | 0 | 0.001 s | 115.49 MiB | C++ |
Hellc | 0 | 0.632 s | 131.16 MiB | C++ |
Hellc | 0 | 1.077 s | 61.35 MiB | C++ |
Hellc | 0 | 2.178 s | 128.57 MiB | C++ |
关于 万圣节后的早晨 的近10条评论(全部评论) | ||||
---|---|---|---|---|
题目描述真棒
做个人吧
2018-05-18 19:35
1楼
|
【问题描述】
要求你写一个程序,在一个地图中,找到最小步数将每个鬼移动到他们指定的位置。地图包含一些小方格。每格要么是墙(鬼不能进入),要么是走廊(鬼能进入)。
每一步里,你可以同时移动任意数量的鬼。每个鬼要么待在原地不动,要么移动到相邻的格子里(相邻的格子有公共边),如果移动满足下列条件,则移动是可行的。
1.没有一个以上的鬼在同一个格子里。
2.没有一对鬼在一步里交换了位置。
例如,假设鬼的位置是如右上图所示的,其中sharp(#)表示墙,空格表示走廊,a,b,c表示鬼:
经过移动后,地图可以变成如下的样子:
【输入格式】
输入包括最多10组数据,每组数据包含一幅地图。输入格式如下:
第一行的w,h和n表示地图的宽度和高度,n表示鬼的数目,他们满足:
4≤w≤16, 4≤h≤16, 1≤n≤3
接下来h行,每行w个字符:
一个#表示墙。
一个小写字母表示鬼的初始位置(该位置也是走廊)。
一个大写字母表示鬼的目标位置(该位置也是走廊)。
一个空格表示空的走廊。
在每幅地图里,前n个小写字母和前n个大写字母表示鬼的初始位置及鬼的目标位置。我们需要将小写字母表示的鬼移动到对应的大写字母的位置里。
最后一组数据后一行有三个0。
【输出格式】
对每组数据输出一行一个整数,表示最小的移动步数。
【样例输入】 [蒟蒻自己调不好这个缩进,所以在其他编辑器上截了图,可以去POJ上复制样例 →.→]
【样例输出】
7
36
【来源】
Japan 2007 Uva 1601 POJ 3523 刘汝佳 《算法竞赛入门经典》 例题 7-9 (P205)