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

学校网站建设框架老版本网站开发工具

学校网站建设框架,老版本网站开发工具,wordpress 分类标签云,图片网站优化目录 1 介绍2 训练 1 介绍 本博客用来记录"对于有根图中,求最近公共祖先"的题目。 求解方法: 向上标记法。每次求两个结点的最近公共祖先的时间复杂度是O(N)。由于时间复杂度较高,通常不用。倍增法。 倍增法重要思路&#xff1…

目录

  • 1 介绍
  • 2 训练

1 介绍

本博客用来记录"对于有根图中,求最近公共祖先"的题目。

求解方法:

  1. 向上标记法。每次求两个结点的最近公共祖先的时间复杂度是O(N)。由于时间复杂度较高,通常不用。
  2. 倍增法。

倍增法重要思路:预处理出两个数组fa[i][j]depth[i]。其中fa[i][j]表示从i开始,向上走2^j步所能走到的结点。0<=j<=logndepth[i]表示深度,为到根结点的距离再加上1。

哨兵:如果从i开始跳2^j步会跳过根结点,那么fa[i][j] = 0depth[0] = 0

倍增法重要步骤:

  1. 先将两个点跳到同一层。
  2. 让两个点同时往上跳,一直跳到它们的最近公共祖先的下一层。

倍增法的时间复杂度分析:预处理的时间复杂度为O(NlogN),查询的时间复杂度为O(logN)

2 训练

题目1:1172祖孙询问

C++代码如下,

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <unordered_map>using namespace std;const int N = 40010;
int n, m;
int depth[N], fa[N][16];
int ancestor;
unordered_map<int, vector<int>> g;void bfs(int root) {memset(depth, 0x3f, sizeof depth);depth[0] = 0;depth[root] = 1; queue<int> q;q.push(root);while (!q.empty()) {int a = q.front();q.pop();for (auto b : g[a]) {if (depth[b] > depth[a] + 1) {depth[b] = depth[a] + 1;q.push(b);fa[b][0] = a;for (int k = 1; k <= 15; ++k) {fa[b][k] = fa[fa[b][k-1]][k-1];}}}}return;
}int lca(int a, int b) {//倍增法if (depth[a] < depth[b]) swap(a, b);for (int k = 15; k >= 0; --k) {if (depth[fa[a][k]] >= depth[b]) {a = fa[a][k];}}if (a == b) return a;for (int k = 15; k >= 0; --k) {if (fa[a][k] != fa[b][k]) {a = fa[a][k];b = fa[b][k];}}return fa[a][0];
}int main() {cin >> n;int a, b;for (int i = 0; i < n; ++i) {cin >> a >> b;if (b == -1) {ancestor = a;} else {g[a].emplace_back(b);g[b].emplace_back(a);        }}cin >> m;vector<pair<int,int>> queries;for (int i = 0; i < m; ++i) {cin >> a >> b;queries.emplace_back(a,b);}//从根结点开始遍历bfs(ancestor);for (auto [a, b] : queries) {int x = lca(a, b);if (a == x) {puts("1");} else if (b == x) {puts("2");} else {puts("0");}}return 0;
}

题目2:1171距离

C++代码如下,


http://www.yayakq.cn/news/466347/

相关文章:

  • 个人建站赚钱建设厅安全员证
  • 西安搭建网站网页设计实训心得体会500字
  • 网站设计制作 一年价格dream网站怎么做框架
  • 做网站啦代理的方法免费建网站的平台
  • 小程序代理商好做吗优化网站排名技巧
  • 创建销售网站多少钱我国政务网站建设统计
  • 门户网站建设平台百度收录WordPress文章
  • 非常成功的网站wordpress调用模版
  • 中国建设银行网站保定五四路中山骏域网站建设
  • 重庆网站建设及推广公司面试问你如何快速优化网站
  • 开放平台设计重庆seo论
  • 免费邯郸网站建设北京最大的广告制作公司
  • google 网站突然一条收录也没有模板做的网站如何下载地址
  • 网站建设相关文献wordpress模板定做
  • 使用wordpress建站域名与空间购买后怎么做网站
  • 无锡做食品网站的公司企业seo排名外包
  • 泰州企业做网站网站首页包括哪些内容
  • 闸北网站推广公司网站设计宽度
  • 58招聘运营网站怎么做网站服务器租用时间
  • 苏州和城乡建设局网站首页用jsp做的网站在不同浏览器显示效果差异很大如何解决
  • 怎么切图做网站长沙哪家网站公司
  • 顺德网站建设如何数控编程培训
  • 同ip网站有什么危害网站建设销售员话术
  • 为什么一个网站外链那么多装企erp管理系统
  • 专业的新乡网站建设快速开发小程序
  • 通用wap网站生成系统高端建站
  • 企业网站建设总结梅州正在建设高铁线路
  • 黄冈商城网站制作哪家好课程网站建设的基本原理
  • 为新创业公司建设网站400网站建设电话
  • 黑龙江企业网站设计团队网站 版本 白名单 wap 解析