Flip Game(题目地址链接:https://acs.jxnu.edu.cn/problem/NOIOPJCH0201755)

描述:

Flip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 squares. One side of each piece is white and the other one is black and each piece is lying either it's black or white side up. Each round you flip 3 to 5 pieces, thus changing the color of their upper side from black to white and vice versa. The pieces to be flipped are chosen every round according to the following rules:

  1. Choose any one of the 16 pieces.
  2. Flip the chosen piece and also all adjacent pieces to the left, to the right, to the top, and to the bottom of the chosen piece (if there are any). 

Consider the following position as an example:



bwbw
wwww
bbwb
bwwb
Here "b" denotes pieces lying their black side up and "w" denotes pieces lying their white side up. If we choose to flip the 1st piece from the 3rd row (this choice is shown at the picture), then the field will become:

bwbw
bwww
wwwb
wwwb
The goal of the game is to flip either all pieces white side up or all pieces black side up. You are to write a program that will search for the minimum number of rounds needed to achieve this goal.

 

输入:

The input consists of 4 lines with 4 characters "w" or "b" each that denote game field position.

输出:

Write to the output file a single integer number - the minimum number of rounds needed to achieve the goal of the game from the given position. If the goal is initially achieved, then write 0. If it's impossible to achieve the goal, then write the word "Impossible" (without quotes).

样例输入:

bwwb

bbwb

bwwb

bwww

样例输出:

4

翻译:

翻转游戏是在一个4×4的长方形中的16个格子里放入两种颜色的棋子。一种的颜色是白的,另一种是黑的。并且每种棋子都是黑或白面朝上放置的。每回合你可以翻转3到5个棋子,由此来改变它们朝上的那面。这些棋子每回合的翻转都是按照以下规则来实现的:

  1. 选择16个棋子中的任意一个。
  2. 翻转被选择的棋子并且所有的附近的棋子要向左向右向上和向下翻转

思考下面的例子:

bwbw
wwww
bbwb
bwwb

这里的“b”表示黑色的一面向上,“w”表示白色的的一面向上。如果你选择翻转第1个到第3个棋子(被显示在图片中的),那么这个棋盘将会变成这样:

 

bwbw
bwww
wwwb
wwwb

这个游戏的目的就是翻转所有的白色棋子或者所有的黑色棋子。你要写出一个可以用最少的回合来完成这个目标的程序

输入:

输入由4行组成,每行有4个字母“w”或者“b”,每个表示游戏的区域

输出:

写出这个输出的文件由一个数字组成——完成这个

游戏目标的最小的回合数。如果这个目标最初就被实现

请输出0,如果它是不可能实现的,请输出“impossible”

样例输入:

bwwb

bbwb

bwwb

bwww

样例输出:

4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值