送分给会数据结构的朋友

时间:2021-04-26 04:03:40
瓷砖

  在2N×2N的方格地板上铺放两种方形磁砖表面图案分别为 a 和 b ,一个方格中只可放一块磁砖, 每种磁砖各有2N2-1块,加有两个方格内未铺任何磁砖。
    若相邻两块磁砖的弧线有共同点,则认为连起来的曲线是连续的。任何一种铺放方案其表面方案表现为若干曲线组成的图形。下图所示为N=2时的一种铺放方案,最长的连续曲线为由#起始和终止的曲线。
  对任何一块磁砖,若其上下左右4个方向某一相邻方格内没有磁砖, 则可将该磁砖平移至该方格内。
       00100   00100
       01000   00010
       10001   10001
       00010   01000
       00100   00100
         a       b

  编程要求:
  对任何一种满足上述要求的铺放方案,寻找一种移动磁砖的方法,使得经过若干次移动后,所得其中的一条连续曲线在所有铺放方案中最长。
  输入输出要求:
  N和初始铺放方案放在一个文本文件中。第一行是一个数字N,其下2N行为一个2N×2N的矩阵,若该矩阵第I行第J列为1,表示该方格处铺有形如 a 的磁砖,为2表示铺有形如 b 的磁砖,为0表示未铺任何磁砖。在上图这种铺放方案下的最长曲线的长度为13,但不一定是长度最长的方案。
  N为自然数,1≤N≤30。
  要求首先输出所求得的最长曲线的长度(一块磁砖上的一段曲线长度为1),然后将你的移动方案存入一名为Solve.txt的文件。该文件第一行为移动的总步数, 其下每一行表示一次移动。每行只含有4个数字“x1 y1 x2 y2”,表示当前棋盘上坐标(x1,y1)处不是空格,坐标(x2,y2)处是空格,且当前步是将在坐标(x1,y1)的磁砖移至空格(x2,y2)处,显然(x1,y1)与(x2,y2)应当是相邻的。
  备注:
  1、不要求移动次数最少;
  2、注意应能处理N值较大的情形;
  3、最长曲线可以是封闭的,也可以是不封闭的;
  4、若有多条最长曲线只取一条;
  5、输入文件不需判错。

8 个解决方案

#1


不会吧,楼主放这么这么多分啊,真是有趣呀。

#2


强人!!

不过题都很有趣,我全拷了!不会侵权吧,^_^!

#3


楼主放这么多分我想拿,但都不会,好眼红,等我慢慢学来,你以后要一如继往啊,我才刚学。

#4


会通货膨胀的

我不要

#5


我要!

#6


chiprobot 是 robot ?
到处领分?

#7


大家想想,我要结帖了

#8


NOI94年的题目。。。

晕。。。。

解决的方法是搜索。

#1


不会吧,楼主放这么这么多分啊,真是有趣呀。

#2


强人!!

不过题都很有趣,我全拷了!不会侵权吧,^_^!

#3


楼主放这么多分我想拿,但都不会,好眼红,等我慢慢学来,你以后要一如继往啊,我才刚学。

#4


会通货膨胀的

我不要

#5


我要!

#6


chiprobot 是 robot ?
到处领分?

#7


大家想想,我要结帖了

#8


NOI94年的题目。。。

晕。。。。

解决的方法是搜索。