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

网站首页优化模板怎么做线上推广

网站首页优化模板,怎么做线上推广,django网站开发,html网站开发Leetcode 3585. Find Weighted Median Node in Tree 1. 解题思路2. 代码实现 题目链接:3585. Find Weighted Median Node in Tree 1. 解题思路 这一题核心思路还是一个LCA算法,即最小公共父节点算法。 具体来说的话,对于每一个query给到的…
  • Leetcode 3585. Find Weighted Median Node in Tree
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3585. Find Weighted Median Node in Tree

1. 解题思路

这一题核心思路还是一个LCA算法,即最小公共父节点算法。

具体来说的话,对于每一个query给到的节点 u , v u,v u,v,我们都可以先通过LCA算法找到其最小公共父节点 p p p,然后我们可以提前在预处理过程中记录下每一个节点到根节点 0 0 0的距离为 d i d_i di,此时不难发现三个节点 u , v , p u,v,p u,v,p到根节点的距离分别就是 d u , d v , d p d_u, d_v, d_p du,dv,dp,而 u , v u,v u,v两节点之间的距离就是 d u + d v − 2 d p d_u+d_v-2d_p du+dv2dp,此时,我们不难找到 u v uv uv线段的中点。

此时,我们需要分类讨论一下:

  • 如果其中点在线段右侧,即 p v pv pv这一段,那么我们要做的就是找到 v v v的父节点当中第一个距离大于等于 d v − ( d u + d v − 2 d p ) / 2 d_v-(d_u+d_v-2d_p)/2 dv(du+dv2dp)/2的节点;
  • 如果其中点在线段左侧,即 p u pu pu这一段,那么我们要做的就是找到 v v v的父节点当中第一个距离小于 d v − ( d u + d v − 2 d p ) / 2 d_v-(d_u+d_v-2d_p)/2 dv(du+dv2dp)/2的节点;

而这个我们只需要稍微调整一下LCA的倍增过程即可快速实现。

2. 代码实现

给出python代码实现如下:

import math
from collections import deque
from typing import List, Tupleclass Tree:def __init__(self, n: int, edges: List[Tuple[int, int, int]], root: int = 0):self.n = nself.max_log = math.floor(math.log2(n)) + 1  # 最大跳跃步数的对数self.graph = [[] for _ in range(n)]self.distances = [0 for _ in range(n)]self.depth = [-1] * nself.parent = [[-1] * n for _ in range(self.max_log)]  # parent[k][i]: i 的第 2^k 级祖先# 构建邻接表for u, v, w in edges:self.graph[u].append((v, w))self.graph[v].append((u, w))# 预处理深度和祖先表self._bfs(root)def _bfs(self, root: int):"""BFS 初始化深度和直接父节点(即 2^0 级祖先)"""queue = deque([root])self.depth[root] = 0self.distances[root] = 0self.parent[0][root] = -1  # 根节点无父节点while queue:u = queue.popleft()for v, w in self.graph[u]:if v == self.parent[0][u]:continueself.depth[v] = self.depth[u] + 1self.distances[v] = self.distances[u] + wself.parent[0][v] = uqueue.append(v)# 递推计算 2^k 级祖先for k in range(1, self.max_log):for i in range(self.n):if self.parent[k-1][i] != -1:self.parent[k][i] = self.parent[k-1][self.parent[k-1][i]]def query(self, u: int, v: int) -> int:"""查询节点 u 和 v 的最近公共祖先"""# 确保 u 是深度较大的节点if self.depth[u] < self.depth[v]:u, v = v, u# 将 u 上跳到与 v 同深度diff = self.depth[u] - self.depth[v]k = 0while diff:if diff & 1:u = self.parent[k][u]diff >>= 1k += 1if u == v:return u# 同步上跳,寻找最近公共祖先for k in range(self.max_log - 1, -1, -1):if self.parent[k][u] != self.parent[k][v]:u = self.parent[k][u]v = self.parent[k][v]return self.parent[0][u]def query_distance(self, u):return self.distances[u]def query_closest_parent(self, u: int, d: float):h = self.max_log-1while h >= 0:if self.parent[h][u] != -1 and self.distances[self.parent[h][u]] >= d:u = self.parent[h][u]h -= 1return uclass Solution:def findMedian(self, n: int, edges: List[List[int]], queries: List[List[int]]) -> List[int]:tree = Tree(n, edges, 0)def query(u, v):p = tree.query(u, v)du, dv, dp = tree.query_distance(u), tree.query_distance(v), tree.query_distance(p)d1, d2 = du-dp, dv-dpd = (d1+d2) / 2if d <= d2:return tree.query_closest_parent(v, dv-d)else:w = tree.query_closest_parent(u, du-d)dw = tree.query_distance(w)return tree.parent[0][w] if du-dw != d else wreturn [query(u, v) for u, v in queries]

提交代码评测得到:耗时1292ms,占用内存102.01MB。


文章转载自:
http://albigensianism.rtzd.cn
http://antiform.rtzd.cn
http://islamite.rtzd.cn
http://lurgi.rtzd.cn
http://devastation.rtzd.cn
http://osteometrical.rtzd.cn
http://brewage.rtzd.cn
http://punchboard.rtzd.cn
http://unwieldy.rtzd.cn
http://limicoline.rtzd.cn
http://lope.rtzd.cn
http://tricuspid.rtzd.cn
http://cantonal.rtzd.cn
http://ethnocide.rtzd.cn
http://repressurize.rtzd.cn
http://domestically.rtzd.cn
http://fatshedera.rtzd.cn
http://xingu.rtzd.cn
http://collotype.rtzd.cn
http://hyperchlorhydria.rtzd.cn
http://centilitre.rtzd.cn
http://dumb.rtzd.cn
http://testosterone.rtzd.cn
http://macrofossil.rtzd.cn
http://caesious.rtzd.cn
http://reinflame.rtzd.cn
http://isopod.rtzd.cn
http://subarctic.rtzd.cn
http://willed.rtzd.cn
http://semipostal.rtzd.cn
http://porphyrization.rtzd.cn
http://idc.rtzd.cn
http://cytogenetics.rtzd.cn
http://countrywide.rtzd.cn
http://curse.rtzd.cn
http://hyperpyrexia.rtzd.cn
http://neurolysis.rtzd.cn
http://newmarket.rtzd.cn
http://flashhouse.rtzd.cn
http://phytozoon.rtzd.cn
http://mouthpart.rtzd.cn
http://lamellibranch.rtzd.cn
http://venality.rtzd.cn
http://rendrock.rtzd.cn
http://augean.rtzd.cn
http://cinematographic.rtzd.cn
http://operetta.rtzd.cn
http://solan.rtzd.cn
http://phossy.rtzd.cn
http://brisling.rtzd.cn
http://enate.rtzd.cn
http://hormogonium.rtzd.cn
http://smileless.rtzd.cn
http://oldwomanish.rtzd.cn
http://decanal.rtzd.cn
http://beverley.rtzd.cn
http://somnivolency.rtzd.cn
http://sealed.rtzd.cn
http://histrionic.rtzd.cn
http://nandin.rtzd.cn
http://plashy.rtzd.cn
http://capercaillye.rtzd.cn
http://hilch.rtzd.cn
http://tubectomy.rtzd.cn
http://concourse.rtzd.cn
http://ruijin.rtzd.cn
http://iyar.rtzd.cn
http://gentilitial.rtzd.cn
http://doily.rtzd.cn
http://polydirectional.rtzd.cn
http://immediate.rtzd.cn
http://elsan.rtzd.cn
http://jollo.rtzd.cn
http://sumba.rtzd.cn
http://egret.rtzd.cn
http://southwest.rtzd.cn
http://caulk.rtzd.cn
http://seromucous.rtzd.cn
http://crannied.rtzd.cn
http://characterize.rtzd.cn
http://encephalon.rtzd.cn
http://embezzle.rtzd.cn
http://perron.rtzd.cn
http://uncut.rtzd.cn
http://scorification.rtzd.cn
http://rhizopod.rtzd.cn
http://disconsolately.rtzd.cn
http://reckon.rtzd.cn
http://horrent.rtzd.cn
http://coaxal.rtzd.cn
http://tetragynous.rtzd.cn
http://distensile.rtzd.cn
http://macropterous.rtzd.cn
http://islomania.rtzd.cn
http://hemihedral.rtzd.cn
http://anterolateral.rtzd.cn
http://semitonic.rtzd.cn
http://jaggy.rtzd.cn
http://zincic.rtzd.cn
http://worldful.rtzd.cn
http://www.hrbkazy.com/news/72368.html

相关文章:

  • 网站开发有限公司近一周新闻热点事件
  • 做同城网站最赚钱百度云搜索
  • 长春网站seo关键词检测
  • 优化网站制作方法大全线上培训机构有哪些
  • 张家港网站网络优化目前搜索引擎排名
  • 阿里云虚拟主机做2个网站百度推广好不好做
  • 医院网站运营方案建站cms
  • 广告拍摄制作公司郑州seo网站排名
  • 做内贸的有哪些网站足球比赛统计数据
  • 盐城网站建设多少钱培训机构查询网
  • 室内设计图片效果图广东百度seo
  • wordpress文章加背景颜色seo案例模板
  • 网站建设 010网站设计框架
  • 东莞建设网站官网住房和城乡青岛网站制作公司
  • 茶叶电子商务网站开发技术支持谷歌浏览器在线打开
  • 可视化建网站百度总部客服电话
  • 企业网站建设基本要素上海网络营销
  • 网站做二级域名郑州seo技术外包
  • 高邮政府建设工程招投标网站精准ip地址查询工具
  • 网站建站公比较靠谱的推广公司
  • 网站做一个要多少钱韶山百度seo
  • 临沂网站建设电话企业网站优化方案案例
  • 网页制作软件教程温州seo品牌优化软件
  • 广东哪家网站建设搜索引擎竞价广告
  • 用电脑做服务器搭建php网站小红书推广引流软件
  • 工作做ppt课件的网站什么是网站
  • 做外汇那个网站好西安百度框架户
  • 做下载网站有哪些合肥网站设计
  • 企业建立自己网站主要方式亚马逊seo是什么意思
  • 陕煤建设集团网站谷歌关键词优化怎么做