千年虫和Bill Door
   

  输入文件: BillDoor.in

  1999年末,前年虫声称他已经掌握了足以控制世界上所有电脑的能量。在2000年,他会用这一强大的武器控制整个世界。对于许多人来说,这曾经是一场噩梦。

  现在2000年几乎已经快要过去一半了。大多数人认为千年虫欺骗了大家,他已经不再危险了。但是在世界上最大的硬件公司MicroHard,工程师发现千年虫仍然有一些力量控制他们的著名的系统门。所以他们竭尽全力,希望在千年虫控制电脑征服世界之前除掉他。但是很长时间他们只能看到千年虫的尾巴。千年虫厌倦了逃避的生活。所以他侵入了MicroHard的总部,抓住了老板Bil Door。最后,他们达成了一个协议,就是千年虫和Bill Door玩一个游戏。如果千年虫赢了,他就控制了世界,反之,千年虫就应当永远消失。

  这是一个很简单的单人游戏。游戏的工具是一个由n*n个盒子组成的方形,以及一些黑白石子。游戏开始的时候,所有的格子都是空的。玩家可以在一行或者一列的n个盒子中各放一个石子。一列或一行的石子不必都同色,但单一个盒子不能在同一时间放不同颜色的石子。如果某次玩家在同一个盒子里放了不同颜色的石子,他必须立刻从盒子里拿出黑白石子各一个。

  千年虫和Bill Door确定一个随机的目标状态,他们一人玩一次游戏。用的次数少的人(虫)获胜。下面是一个目标状态的例子:

  ....B
  ....B
  ....B
  ....B
  WWWW.

  这是一个5*5方形的状态,"."表示空盒子,"B"表示放黑石子的盒子,"W"表示放白石子的盒子。

  Bill Door希望赢得比赛。所以他希望用便携的系统干掉千年虫。作为程序员,你来写一个程序,确定完成目标状态至少要多少步。

  输入

  输入文件包含多个目标状态。对于每个状态,首先是一个整数n表示方形的大小(n<=10)。下来n行是盒子的状态(如上所述)。每一行包含n个字符(".", "B" 或 "W")。当n为0时,输入结束。每一行头尾没有多余的空格,不同目标状态之间没有多余的空行。

  输出

  对于每一个目标状态,输出达到这一状态至少需要多少步。(参看样例输出)

  Sample Input

  5
  ....B
  ....B
  ....B
  ....B
  WWWW.
  0

  Sample Output for Sample Input

  2
  

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有