#include<cstdio>
#include<iostream>
using namespace std;
const char cmp[7]="izhong";
const int nx[]={0,1,1,1,-1,-1,-1,0},ny[]={1,1,0,-1,1,0,-1,-1};
int n,vis[110][110];
char s[110][110];
void path(int x,int y,int step,int d)
{
if(step>=7)return;
vis[x][y]=1;
x+=nx[d],y+=ny[d];
path(x,y,step+1,d);
}
void dfs(int x,int y,int step,int d)
{
if(x<0||x>n||y<0||y>n)return;
if(step>=6)
{
path(x,y,0,7-d);
return;
}
x+=nx[d],y+=ny[d];
if(s[x][y]!=cmp[step])return;
dfs(x,y,step+1,d);
}
void judge(int x,int y)
{
for(int i=0;i<8;i++)dfs(x,y,
【题解】洛谷P1101单词方阵 dfs
最新推荐文章于 2021-01-26 19:34:13 发布
这篇博客总结了作者在解决洛谷P1101题目时遇到的问题,主要探讨了在使用dfs算法过程中,由于 nxny 数组错误导致的困扰和解决过程。
摘要由CSDN通过智能技术生成