题解:翻转游戏(flip)

前言

调了两个小时QAQ

题目描述

翻转游戏是在一个 4格×4格 的长方形上进行的,在长方形的 16 个格上每个格子都放着一个双面的物件。每个物件的两个面,一面是白色,另一面是黑色,每个物件要么白色朝上,要么黑色朝上,每一轮你只能选一个位置,翻该位置及其相邻的共 3 至 5 个物件,从而由黑到白的改变这些物件上面的颜色,反之亦然。每一轮被选择翻转的物件遵循以下规则: 1、从 16 个物件中任选一个。 2、翻转所选择的物件的同时,所有与它相邻的左方物件、右方物件、上方物件和下方物件 (如果有的话),都要跟着翻转。 以下为例:

bwbw
wwww
bbwb
bwwb

这里 "b" 表示该格子放的物件黑色面朝上、"w" 表示该格子放的物件白色朝上。如果我们选择翻转第三行的第一个物件,那么格子状态将变为:

bwbw
bwww
wwwb
wwwb

游戏的目标是翻转到所有的物件白色朝上或黑色朝上。你的任务就是写一个程序来求最少的翻转次数来实现这一目标。

【输入格式】

输入文件包含 4 行,每行 4 个字符,每个字符 "w" 或 "b" 表示游戏开

你可能感兴趣的:(算法例题及解析,c++,数据结构,算法)