明明是一道水题,我还找不出 bug 来。。。原本在 DFS 途中记录单词串,只好使用笨方法,在结尾加一个 for 记录单词串。终于过了。
思路:枚举图中每一个点进行 DFS,途中判断访问的点是否为连续元素(“yizhong”字符串中连续),如果不是返回;进行下一层 DFS,如果返回值 True 则直接层层返回 True,强行退出。
1 /* P1101 单词方阵 2 * Au: GG 3 */ 4 #include <cstdio> 5 #include <cstdlib> 6 #include <cstring> 7 #include <cmath> 8 #include <ctime> 9 #include <iostream> 10 #include <algorithm> 11 using namespace std; 12 const int N = 103; 13 int n, dir[8][2] = { 14 {-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, 15 {0, 1}, {1, -1}, {1, 0}, {1, 1} 16 }; 17 char g[N][N], str[] = "