当前位置: 首页 > wzjs >正文

百度小程序开发平台一个网站如何做seo优化

百度小程序开发平台,一个网站如何做seo优化,永久 网址 免费,网站界面设计内容有哪些个人主页:Guiat 归属专栏:我讲你听 文章目录 1. dfs 回溯1.1 回溯介绍1.2 回溯模板1.3 回溯经典题目 2. dfs 剪枝2.1 剪枝介绍2. 2 剪枝模板2.3 经典题目 3. dfs 记忆化3.1 记忆化介绍3.2 记忆化示例 正文 1. dfs 回溯 1.1 回溯介绍 核心思想&#xff…

在这里插入图片描述

个人主页:Guiat
归属专栏:我讲你听

在这里插入图片描述

文章目录

  • 1. dfs 回溯
    • 1.1 回溯介绍
    • 1.2 回溯模板
    • 1.3 回溯经典题目
  • 2. dfs 剪枝
    • 2.1 剪枝介绍
    • 2. 2 剪枝模板
    • 2.3 经典题目
  • 3. dfs 记忆化
    • 3.1 记忆化介绍
    • 3.2 记忆化示例

正文

1. dfs 回溯

1.1 回溯介绍

  • 核心思想:通过试错的方式探索所有可能得解,当发现当前路径无法得到有效解时,撤销(回溯)最近一步的选择,尝试其他分支。

  • 关键步骤

    • 选择:在当前步骤做出一个选择。
    • 递归:基于这个选择进入下一层决策。
    • 撤销(回溯):如果当前路径不满足条件,回退到上一步,尝试其他选择。

【注】实际上,回溯算法比较灵活,需要具体情况具体分析。

1.2 回溯模板

【求 1 ~ n 的全排列 】

#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 1e5 + 10;
int n, a[N]; bool vis[N];// 回溯
void dfs(int deep)
{if (deep == n + 1){for (int i = 1; i <= n; i ++) cout << a[i] << " \n"[i == n];return ;}for (int i = 1; i <= n; i ++){if (vis[i]) continue;vis[i] = true; a[deep] = i;dfs(deep + 1); vis[i] = false;}
}void solve()
{cin >> n; dfs(1);
}int main()
{IOS; int _ = 1; // cin >> _;while (_ --) solve();return 0;
}

1.3 回溯经典题目

【题目】N 皇后

【AC_Code】

#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 30;
int n, ans; bool vis[N][N];void dfs(int deep)
{if (deep == n + 1) { ans ++; return ; }for (int i = 1; i <= n; i ++){if (vis[0][i] || vis[1][deep + i] || vis[2][deep - i + n]) continue;// 修改状态vis[0][i] = true;vis[1][deep + i] = true;vis[2][deep - i + n] = true;dfs(deep + 1);// 恢复现场vis[0][i] = false;vis[1][deep + i] = false;vis[2][deep - i + n] = false;}
}void solve()
{cin >> n; dfs(1); cout << ans << '\n';
}int main()
{IOS;int _ = 1; // cin >>  _;while (_ --) solve();return 0;
}

2. dfs 剪枝

2.1 剪枝介绍

  • 因为搜索过程构成了一棵树,剔除不必要的部分,就像是在树上将树枝剪掉,故名剪枝。
  • 核心思想:通过某些条件或规则,提前终止某些不可能产生最优解的分支,从而减少不必要的计算。
  • 剪枝是回溯法的一种重要优化手段。

2. 2 剪枝模板

void backtracking(参数)
{if (终止条件){存储结果;  // 找到一个有效解return;}for (选择 : 所有可能的选择){if (剪枝条件) continue;  // 跳过当前选择,进行剪枝做出选择;  // 处理当前选择backtracking(新参数);  // 递归进入下一层撤销选择;  // 回溯,撤销当前选择}
}

2.3 经典题目

【题目】数字王国之军训排队

【AC_Code】

#include <iostream>
#include <vector>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 15;
int n, a[N]; vector<int> vec[N];bool dfs(int deep, int cnt)
{if (deep == n + 1) return true;for (int i = 0; i < cnt; i ++){bool flag = false;for (const auto &num : vec[i]){if (a[deep] % num == 0) { flag = true; break; }}if (flag) continue;vec[i].push_back(a[deep]);if (dfs(deep + 1, cnt)) return true;// 恢复现场vec[i].pop_back(); }return false;
}void solve()
{cin >> n; for (int i = 1; i <= n; i ++) cin >> a[i];sort(a + 1, a + n + 1);for (int cnt =  1; cnt <= n; cnt ++){if (dfs(1, cnt)) { cout << cnt << '\n'; break; }}
}int main()
{IOS;int _ = 1; // cin >>  _;while (_ --) solve();return 0;
}

3. dfs 记忆化

3.1 记忆化介绍

  • 记忆化是一种优化技术,主要用于加速递归算法或动态规划算法。
  • 核心思想:通过缓存(或"记忆")已经计算过的结果,避免重复计算,从而减少算法的运行时间。

3.2 记忆化示例

【计算斐波那契数列】

#include <iostream>
#include <cstring>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;
using ll = long long;const ll N = 1e5 + 10, p = 1e9 + 7, inf = 1e9; ll dp[N];ll fun(int n)
{if (n <= 2) return 1;if (dp[n] != -1) return dp[n];return dp[n] = (fun(n - 1) + fun(n - 2)) % p;
}void solve()
{memset(dp, -1, sizeof dp); int n; cin >> n; cout << fun(n) << '\n';
}int main()
{IOS;int _ = 1; // cin >>  _;while (_ --) solve();return 0;
}

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

http://www.dtcms.com/wzjs/794200.html

相关文章:

  • 网站工程专业是什么北京高端网站建设案例
  • 网站建设实录做网站需要学那些
  • 苏州网站建设网站开发深圳市住房和城乡建设厅网站首页
  • 网站自动登录怎么做建立网站如何
  • 国内专门做情侣的网站商城新建站点的步骤
  • 做新的网站卡盟网站制作教程
  • 成都那家网站做的好私域平台运营分为几个步骤
  • 浦口区建设网站成都网站开发公司排名
  • 如何做网站软件搭建服务器做网站
  • 外销网站百度竞价代运营公司
  • 网站建设对企业的帮助博客系统 wordpress
  • 一个人做网站建设需掌握单机游戏网页版
  • c语言和c 哪个做网站好手动安装wordpress主题
  • 网站备案 用假地址可以么wordpress评论表情不显示
  • 网站开发包含上线吗房产交易网官网
  • 上海城乡建设部网站首页满亦工作室 网站建设
  • 崇明建设机械网站wordpress中文主题框架
  • 汕头网站建设运营团队编程培训机构加盟品牌
  • 响应式网站 手机站培训类网站建设
  • 佛山网站开发哪家好西宁市解封最新消息
  • 可以做填字游戏的网站中国企业黄页信息网
  • 广州网站建设一般多少钱开发公司对代理公司管理
  • 做不锈钢网站我做的网站有时打开很慢什么原因
  • 豪华大气的旅行社网站源码怎么制作h5棋牌软件
  • php简单企业网站源码做网站接私活流程
  • js效果网站招聘网站策划书
  • 有好点的做网站的公司吗深圳龙岗区租房子多少钱一个月
  • 网站流量合作珠海高端网站开发
  • 石景山做网站的公司抄一则新闻四年级
  • 淄博网站制作托管优化网站超链接怎么做 word文档