太原百度网站排名优化,推广app,北京建设执业注册中心网站,建e室内设计思路 dfs 考虑选或者不选每个位置
用0表示未考虑 1表示选 2表示不选
用u表示搜索状态
un时 已经搜到底层了 需要输出当前方案
遍历 如果选了则输出
#includeiostream using namespace std; int n; const int N16; int st[N]; void dfs(int u){ //u来记…
思路 dfs 考虑选或者不选每个位置
用0表示未考虑 1表示选 2表示不选
用u表示搜索状态
un时 已经搜到底层了 需要输出当前方案
遍历 如果选了则输出
#includeiostream using namespace std; int n; const int N16; int st[N]; void dfs(int u){ //u来记录考虑到几个位置了 if(un){ //如果已经考虑过最后一个位置 //遍历每个位置 如果该位置已经选过 则输出 for(int i1;in;i){ if(st[i]1){ couti ; } } coutendl; return; } st[u]2; //不选当前位置 搜索下一层 dfs(u1); st[u]0;//恢复现场 st[u]1;//选当前位置考虑下一层搜素 dfs(u1); st[u]0;//恢复现场 } int main(){ cinn; dfs(1); return 0; }