有没有人有深搜模板,不要博客,最好手打,加注释
问题描述:
不求速度
正文长度小于30个字符,请进行修改!
正文长度小于30个字符,请进行修改!
正文长度小于30个字符,请进行修改!
答
DFS简单迷宫类型模板:
纯手打:)
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,0,-1,1};//s=4
int dy[4]={1,-1,0,0};//根据不同情况要删减或者增加
bool a[114][114];
int s=4;
void dfs(int x,int y,int step)//x坐标,y坐标(一般在数组中),还有步数统计
{
if()
{
cout<<;//
return;//返回
}
for(int i=0;i<s;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=1&&yy>=1&&xx<=n&&yy<=m)
{
a[x][y]=0;//不能走
dfs(xx,yy,step+1);
a[x][y]=1;//可以走
}
}
}
int main()
{
//dfs();
}
答
//会有相对应的方向变量
void DFS(int x,int y)
{
if(满足所需要的条件) { 相应的操作;return;}
else{
for(int i= ; ;) //如果是方向的话,会枚举方向
{
枚举加方向的新坐标;
if(界限 :例如:不能出到地图外,有障碍,已经访问过) continue;
设置已经访问新坐标;
DFS(新坐标);
恢复到未被访问;
}
}
}
int main()
{
// 需注意要将起点设置成已访问。
}