递归

*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 (答案是错的,现在过不了,可以听思想)

 

posted @ 2022-08-13 15:44  李某某LLLLL  阅读(70)  评论(0)    收藏  举报