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

广州网站快速排名wordpress还原网站源码

广州网站快速排名,wordpress还原网站源码,钟情建网站公司,wordpress访问计数器文章目录 习题1483.树节点的第K个祖先拓展:LCA LCA问题,就是最近公共祖先的问题 习题 1483.树节点的第K个祖先 1483.树节点的第K个祖先 普通的做法,当然是一个个往上面搜索,但是这样的话时间复杂度是o(k),那么能不能每次求解的是…

文章目录

  • 习题
    • 1483.树节点的第K个祖先
      • 拓展:LCA

  • LCA问题,就是最近公共祖先的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

习题

1483.树节点的第K个祖先

1483.树节点的第K个祖先

在这里插入图片描述

  • 普通的做法,当然是一个个往上面搜索,但是这样的话时间复杂度是o(k),那么能不能每次求解的是爷爷节点,这样就是按照二进制的步子进行寻找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class TreeAncestor:def __init__(self, n: int, parent: List[int]):# bit_length()表示二进制的位数,因为pa[x][0]直接就是父亲节点,所以只用少一位即可m = n.bit_length() - 1# 初始化pa = [[p] + [-1]*m for p in parent]# 注意这个遍历,先枚举这个i再枚举这个x,先算出全部节点的所有爷爷节点,再算出所有爷爷的爷爷节点for i in  range(m):for x in range(n):p = pa[x][i]if p != -1:pa[x][i+1] = pa[p][i]self.pa = padef getKthAncestor(self, node: int, k: int) -> int:for i in range(k.bit_length()):# 这个k>>i的判断就十分巧妙# 并且这个node 是全局的,i从0开始判断if (k >> i) & 1:node = self.pa[node][i]if node < 0 :breakreturn node

拓展:LCA

在这里插入图片描述
在这里插入图片描述

  • 初始化
# 
class TreeAncestor:def __init__(self, edges: List[List[int]]):n = len(edges) + 1m = n.bit_length()g = [[] for _ in range(n)]for x, y in edges:  # 节点编号从 0 开始g[x].append(y)g[y].append(x)depth = [0] * npa = [[-1] * m for _ in range(n)]def dfs(x: int, fa: int) -> None:pa[x][0] = fafor y in g[x]:if y != fa:depth[y] = depth[x] + 1dfs(y, x)dfs(0, -1)for i in range(m - 1):for x in range(n):if (p := pa[x][i]) != -1:pa[x][i + 1] = pa[p][i]self.depth = depthself.pa = padef get_kth_ancestor(self, node: int, k: int) -> int:for i in range(k.bit_length()):if (k >> i) & 1:  # k 二进制从低到高第 i 位是 1node = self.pa[node][i]return node# 返回 x 和 y 的最近公共祖先(节点编号从 0 开始)def get_lca(self, x: int, y: int) -> int:if self.depth[x] > self.depth[y]:x, y = y, x# 使 y 和 x 在同一深度y = self.get_kth_ancestor(y, self.depth[y] - self.depth[x])if y == x:return xfor i in range(len(self.pa[x]) - 1, -1, -1):px, py = self.pa[x][i], self.pa[y][i]if px != py:x, y = px, py  # 同时上跳 2**i 步return self.pa[x][0]

文章转载自:

http://iKQpMqxt.pfkrw.cn
http://mVS7Kc42.pfkrw.cn
http://cWcJaxT4.pfkrw.cn
http://AgQ8KMVF.pfkrw.cn
http://4ChQNiAz.pfkrw.cn
http://plqzbiTQ.pfkrw.cn
http://WfH87bmb.pfkrw.cn
http://gNInZjQV.pfkrw.cn
http://tACtu3gN.pfkrw.cn
http://gff3WAgx.pfkrw.cn
http://sYDR3Hmn.pfkrw.cn
http://RLUKczKs.pfkrw.cn
http://dwRNerKZ.pfkrw.cn
http://CDY9alE2.pfkrw.cn
http://2Zpd9frj.pfkrw.cn
http://rh6kbCx2.pfkrw.cn
http://3Vi6rD8h.pfkrw.cn
http://9q6FrYY0.pfkrw.cn
http://ICqRLZZo.pfkrw.cn
http://KfKOjrhf.pfkrw.cn
http://JeWRx7Tj.pfkrw.cn
http://PhY9Xb5a.pfkrw.cn
http://WYei6QaM.pfkrw.cn
http://5BouACbr.pfkrw.cn
http://6W5vRNW9.pfkrw.cn
http://zJgD1lJT.pfkrw.cn
http://GNUyTj3r.pfkrw.cn
http://pixdTa2U.pfkrw.cn
http://mZqQUb5Q.pfkrw.cn
http://iEV4AFDp.pfkrw.cn
http://www.dtcms.com/wzjs/649367.html

相关文章:

  • 做家政应该下载什么网站wordpress文章字体样式
  • 网站需求流程图wordpress笑话模板
  • 网站开发是培训免插件WordPress对接公众号
  • 洛阳企业网站建设抖音搜索排名优化
  • linux做网站网络课堂没后台的网站怎么做优化
  • 成都网站建设龙兵wordpress更改ip后无主题
  • 网站推广律师关键词有哪些甘肃兰州建筑网
  • 医院网站建设中标网站推广策划方案3000字
  • 如何安装织梦做的网站网站开发设计注册
  • 怎么看公司网站建设的时间网站的邀请怎么做的
  • 网站开发背景论文做破解的网站
  • 北京网站公司网站被黑是什么原因
  • wordpress企业仿站视频教程手机怎么建立自己的网站
  • 做网站流量钱谁给网站建设常州
  • 网站打不开是什么原因宝塔面板怎么安装wordpress
  • 个体户可以做网站吗网站建设项目结构分析报告
  • 黄山学院教务管理系统广东搜索seo哪家强
  • 西安哪些做网站的公司wordpress 置顶 评论
  • 做网站费用多少百度联盟怎么做网站加入
  • 建设银行保定分行网站吕梁营销型网站建设费用
  • 郑州网站开发的公司衣服定制app
  • 网站如何添加关键词wordpress主题加速
  • 网站建设 源码windows2012iis网站默认设置
  • 慈利县建设局网站杭州网站建设设计公司哪家好
  • 微网站预览响应式网站的优势
  • 海事网站开发泉州制作网站开发
  • 小视频哪个网站比较好网站开发需要多少钱如何
  • 怎么做免费视频网站吗网络营销方案设计题
  • 上虞市住房和城乡建设局网站wordpress 建站 linux
  • 自助建个人网站哪个好美工设计