const int N = ;//N看题目数据范围
int n;
bool st[N];//存节点是否被访问过
char x[N];//存状态,可能是二维,也可能是多个
void dfs(int u)
{
if(u == n)//无需搜索
{
for(int i = ;i ;i )
{
cout << ;//输出
}
return;
}
for(int i = ;i ;i )//搜索
{
//下面是上面的那个回溯模板
st[i] = true;//节点被访问
/*......*/;//干一些操作
dfs(u + 1); // 递归下一层
st[i] = false;
/*......*/;//还原现场,回溯
}
}
作者:cht 链接:https://www.acwing.com/blog/content/672/ 来源:AcWing 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。