DFS
DFS 是一种遍历或搜索图、树或图像等数据结构的算法,当然这个图、树未必存储下来。常见的是通过某种关系构造出的搜索树,搜索树一般是排列型搜索树和子集型搜索树。DFS 一般使用栈或递归。
一道模板题
#include<bits/stdc++.h>
using namespace std;
const int N = 50;
int n,mp[N][N],ans;
bool vl[N],ls[N],ys[N];
bool isOk(int x, int y) {
if(vl[y] || ls[x + y] || ys[x - y + 10]) return false;
else return true;
}
void dfs(int d) {
if(d > n) {
ans ++;
return ;
}
for(int i = 1; i <= n; i ++) {
if(isOk(d,i)) {
vl[i] = true;
ls[d+i] = true;
ys[d - i + 10] = true;
dfs(d + 1);
vl[i] = false;
ls[d + i] = false;
ys[d - i + 10] = false;
}
}
}
int main() {
cin>>n;
dfs(1);
cout<<ans;
}
标签:return,int,dfs,算法,搜索,DFS
From: https://www.cnblogs.com/zc-study-xcu/p/18014884