习题7-3:多米诺效应
题意:
有一副牌,给出pips和bone的对应值。现在输入一个7*8的pips矩阵,输出所有对应的bone矩阵。bone矩阵是每俩个相同数字是挨着的。
思路:
标准dfs回溯,只不过位置是一个一个移动的枚举的。
(1)枚举:从位置(0,0)开始,每个位置有俩个方向:下或右,每次进行y+1即坐标向右移动一位,当到达边界时将x+1,y=0即移到下一行开始位置继续,直到28个数全部放完为止。
(2)搜索:判断如果当前位置有数字了就继续搜索下一位置,否则进行俩个方向的枚举,将当前位置和枚举的位置放在给出的表里查找得出bone值,然后看bone值是否使用过,没有使用即当前位置和枚举位置放入其bone值即可,然后继续搜索下一位置,否则不搜索继续枚举。
注意:每个案例结果直接空3行,否则直接WA,不提示PE!!!
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<set>
#include<queue>
#include<map>
#include<stack>
#include<vector>
#include<list>
#include<deque>
using namespace<