递归
*1*一本通p228/例4.2/二分查找
https://www.bilibili.com/video/BV1d54y1q7k7?spm_id_from=333.337.search-card.all.click&vd_source=45e9d34a6b2e0e17eb2bcdfed3e57244
*2*汉诺塔
https://www.cnblogs.com/ljwLLLLL/gallery/image/424812.html
全排列(回溯/深搜)
//题目:http://ybt.ssoier.cn:8088/problem_show.php?pid=1199
//手写代码实现过程: https://www.cnblogs.com/ljwLLLLL/gallery/image/424813.html
//回溯 <---->递归1.递归的下面就是回溯的过程
2.回溯法是一个 纯暴力的 搜索
3.回溯法解决的问题:
3.1组合 如:1234 两两组合
3.2切割问题 如:一个字符串有多少个切割方式 ,或者切割出来是回文
3.3子集 : 1 2 3 4 的子集
3.4排列问题(顺序)
3.5棋盘问题:n皇后 解数独
4.回溯可抽象成树形结构
5.void backtracking(){
if(终止条件) {
收集结果
return
}
for(集合的元素集,类似子节点的个数)
{
处理结点
递归函数;
回溯操作
(撤销处理结点12, 2撤销 ,13 撤销3, 14)
}
}
//代码实现:
#include<bits/stdc++.h>
using namespace std;
int len;
string s;
char ans[8],used[8];
void work(int pos)
{
if(pos==len)
{
cout<<ans<<endl;
return;
}
for(int i=0;i<=len-1;i++)
{
if(used[i]==0)
{
used[i]=1;
ans[pos]=s[i];
work(pos+1);
used[i]=0;
}
}
}
int main()
{
cin>>s;
len=s.length();
work(0);
return 0;
}
*3*pell数列 强制递归(本质地推才能过)
记忆化搜索 使用数组存数据:https://www.bilibili.com/video/BV12F411E7cU/?spm_id_from=333.788 (答案是错的,现在过不了,可以听思想)

浙公网安备 33010602011771号