2.1 最基础的“穷竭搜索”

递归函数


斐波那契数列中的递归,有许多项会反复出现,可以将他们存在数组里。

int memo[MAX_N]

int fib(int n)
{
    if (n <= 1)    return n;
    if (memo[n] != 0)  return memo[n];
    return memo[n] = fib(n-1) + fib(n-2);
}

实现数据后入先出

#include<stack>
#include<cstdio>

using namespace std;

int main()
{
    stack<int> s;            //声明储存int类型的栈
    s.push(1);               //{} -> {1}
    s.push(2);               //{1} -> {1,2}
    s.push(3);               //{1,2} -> {1,2,3}
    printf("%d",s.top());    // 3
    s.pop()                  //从栈顶移除3
    return 0;
}

队列

实现数据先入先出,用于暂时按顺序存储数据。

#include<cstdio>
#include<queue>

using namespace std;

int main()
{
    queue<int> que;             //声明int类型的队列
    que.push(1);                //{}->{1}
    que.front();                //队首元素
    que.pop();                  //从队首弹出一个元素
    return 0;
}

深度优先搜索

它从某个状态开始,不断地转移知道无法转移为止,然后回到前一个状态,继续转移到其他状态,如此反复不断。例如数独。
Lake Counting (POJ No,2386)

宽度优先搜索

它是按照初始状态->只需一次就可以转移到的状态->需要两次。。。。
复杂度为 O(状态数x转移方式)
例如迷宫问题。

特殊状态的枚举

next_permutation 函数

剪枝

在递归搜索中,把没有必要的搜索去掉。

例题

Red and Black
Curling 2.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值