回溯算法模板:
cpp
void backtracking(参数) {
if (终止条件) {
存放结果;
return;
}
for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
处理节点;
backtracking(路径,选择列表); // 递归
回溯,撤销处理结果
}
}
主要是解决下列问题:
1.组合问题
2.切割问题
3.子集问题
4.排列问题
5.去重问题
待复刷