题目链接:http://poj.org/problem?id=2618
题意:矩形平面可以分成n*m个单位小正方形,在这个平面上的某位置处放置一棱长等于小正方形的立方体,它可以沿与平面接触的棱在平面上上下左右翻转进入一下相邻方格,某些方格之间有墙,不能在它们之间翻转,求立方体从某一位置进行翻转移动,到另外一个位置并且向上的平面不变的情况下的最小步数.
挺的意思的一道题,可以用广搜来解决,首先,必需明确的是状态转移之间除了位置的不同外,还有立文体放置方式的不同,在某一们置上,小立方体共有24种放置情况,所以可以增加一维来表示到达该点时立方体的放置情况,则标记数组为vis[M][M][24];另外,立方体的放置情况可以用其三个面来表示,翻转时改变三个面的值即可.
代码: