哈工程OJ 1253 马和象的故事 BFS

来源:互联网 发布:淘宝美女店主的店 编辑:程序博客网 时间:2024/05/04 21:18

马和象的故事

TimeLimit: 1 Second   MemoryLimit: 32 Megabyte

Totalsubmit: 215   Accepted: 46   Special Judge

Description

马和象住在一个由n*m个相同正方形组成的矩形小镇上,它们都能在上面的任何一个小正方形上自由行走。当然马只能走日字,象只能走田字。一天马有急事找象。马很聪明,它知道它们同时走的话肯定要比它一个人走而象在自己里等它要快。于是它就打电话告诉象,它们同时出发,最后在一个地方会合。问题是马不知道到底要在哪里会合以及它们如何走到那点使得它们能够最快相遇。你能帮助它吗?

 

 

Input

先给出2个正整数n和m占一行(2<=n,m<=100),表示这个小镇由n行m列的正方形组成。令左上角的坐标为(1,1)。接着一行有4 个正整数x1,y1,x2,y2(1<=x1,x2<=n,1<=y1,y2<=m),表示马的家在(x1,y1),象的家在 (x2,y2)。马和象的家不可能是在同一个地方。马和象走一步发的时间
都是1。输入到文件结束。

 

 

Output

对每组测试数据给出它们最佳的相遇地点bestx,besty用一个空格分开占一行。

接着给出一个整数a占一行,表示马走到最佳点的要的时间。后面有a行,每行表示马第i步走到哪个位置。

然后给出一个整数b占一行,表示象走到最佳点的要的时间。后面有b行,每行表示象第i步走到哪个位置。

如果它们不能相遇,就输出"My God!"。占一行。

 

 

Sample Input

6 6
5 5 3 3

 

 

Sample Output

5 5
0
1
5 5

 

 

挺有意思的BFS题,这个题中马和象可以一起走,因此可以先对马BFS标记能到达所有位置的最小步数,然后对象BFS,选取象到达某一位置

和马到达那个位置最小步数中较大的就是马和象如果在那个点相会的最小时间,枚举每个象能到达的点即能求出最小步数和路径......

这个题写起来很麻烦,代码将近3K,马马虎虎的WA了3次才过.....