题目:P1101 单词方阵
直接上代码,解释在代码里-0.0
# include <iostream>
using namespace std;
int n, dx[10] = {0,0,0,1,-1,1,1,-1,-1}, dy[10] = {0,1,-1,0,0,1,-1,1,-1};
// dx,dy 分别是八个方向的增量,其下标表示方向 1-8
char map[110][110], s[10] = {'y','i','z','h','o','n','g'};
int vis[110][110], tx[10], ty[10];
// vis 保存访问过的坐标,防止重复访问, tx,ty 是满足题目的方向坐标。
void choke() { // 当在一条直路找到七个满足的坐标,vis[i][j] = 1
for(int i = 0; i <= 6; i++) vis[tx[i]][ty[i]] = 1;
return;
}
void search(int x, int y, int wen, int lou) { // DFS 搜索,wen表示步数,lou表示方向
tx[wen] = x; ty[wen] = y;
int xi = x + dx[lou], yi = y + dy[lou]; // xi,yi坐标是x,y的各各方向的增量坐标
if(wen != 0) { // 当找到第二个(反正不是第一个就行ÿ