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

柳城企业网站制作哪家好今日头条(官方版本)

柳城企业网站制作哪家好,今日头条(官方版本),大数据毕业后去什么岗位就业,网络营销外包项目2846. 边权重均等查询 题目描述: 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 ui 和节点 vi 之间、权重…

2846. 边权重均等查询

题目描述:

现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ui, vi, wi] 表示树中存在一条位于节点 ui 和节点 vi 之间、权重为 wi 的边。

另给你一个长度为 m 的二维整数数组 queries ,其中 queries[i] = [ai, bi] 。对于每条查询,请你找出使从 ai 到 bi 路径上每条边的权重相等所需的 最小操作次数 。在一次操作中,你可以选择树上的任意一条边,并将其权重更改为任意值。

注意:

  • 查询之间 相互独立 的,这意味着每条新的查询时,树都会回到 初始状态 。
  • 从 ai 到 bi的路径是一个由 不同 节点组成的序列,从节点 ai 开始,到节点 bi 结束,且序列中相邻的两个节点在树中共享一条边。

返回一个长度为 m 的数组 answer ,其中 answer[i] 是第 i 条查询的答案。

示例1:

示例2:

提示:

  • 1 <= n <= 10^4
  • edges.length == n - 1
  • edges[i].length == 3
  • 0 <= ui, vi < n
  • 1 <= wi <= 26
  • 生成的输入满足 edges 表示一棵有效的树
  • 1 <= queries.length == m <= 2 * 104
  • queries[i].length == 2
  • 0 <= ai, bi < n

思路:

要我们以queries数组为遍历基础,先找到ai到bi的路径,然后统计路径上的权值,找到频次最高的权值出现的次数,用路径长度-频次即为所求的最小操作次数。

求最近公共祖先,LCA(Least Common Ancestors),即最近公共祖先,这种描述是基于树结构的,也即我们通通常只在树结构中考虑祖先问题。树实际上就是图论中的有向无环图,而要研究LCA问题,首先我们要指定树中的一个顶点为根节点,并以该节点遍历有向无环图,生成一颗DFS序下的树,假设我们要查询的两个节点为u,v,DFS序下根节点到两点的最短路径分别是(r,u),和(r,v),LCA就是(r,u)与(r,v)公共路径的最后一个节点。

而求两点间的路径长度,可以通过倍增法求 LCA 来实现。我们记两点分别为 u 和 v,最近公共祖先为 x,那么 u 到 v的路径长度就是 depth(u)+depth(v)−2×depth(x)。

另外,我们可以用一个数组 cnt[n][26] 记录根节点到每个节点上,每个边权重出现的次数。那么 u 到 v 的路径上,出现次数最多的边的次数就是 max⁡0≤j<26cnt[u][j]+cnt[v][j]−2×cnt[x][j]。其中 x 为 u和 v的最近公共祖先。

代码:

class Solution {
public:vector<int> minOperationsQueries(int n, vector<vector<int>>& edges, vector<vector<int>>& queries) {int m = 32 - __builtin_clz(n);vector<pair<int, int>> g[n];int f[n][m];int p[n];int cnt[n][26];int depth[n];memset(f, 0, sizeof(f));memset(cnt, 0, sizeof(cnt));memset(depth, 0, sizeof(depth));memset(p, 0, sizeof(p));for (auto& e : edges) {int u = e[0], v = e[1], w = e[2] - 1;g[u].emplace_back(v, w);g[v].emplace_back(u, w);}queue<int> q;q.push(0);while (!q.empty()) {int i = q.front();q.pop();f[i][0] = p[i];for (int j = 1; j < m; ++j) {f[i][j] = f[f[i][j - 1]][j - 1];}for (auto& [j, w] : g[i]) {if (j != p[i]) {p[j] = i;memcpy(cnt[j], cnt[i], sizeof(cnt[i]));cnt[j][w]++;depth[j] = depth[i] + 1;q.push(j);}}}vector<int> ans;for (auto& qq : queries) {int u = qq[0], v = qq[1];int x = u, y = v;if (depth[x] < depth[y]) {swap(x, y);}for (int j = m - 1; ~j; --j) {if (depth[x] - depth[y] >= (1 << j)) {x = f[x][j];}}for (int j = m - 1; ~j; --j) {if (f[x][j] != f[y][j]) {x = f[x][j];y = f[y][j];}}if (x != y) {x = p[x];}int mx = 0;for (int j = 0; j < 26; ++j) {mx = max(mx, cnt[u][j] + cnt[v][j] - 2 * cnt[x][j]);}ans.push_back(depth[u] + depth[v] - 2 * depth[x] - mx);}return ans;}
};

大意我懂了,但是俺似乎写不出来这么完整的,哭!然后继续学!


文章转载自:
http://transposal.rjbb.cn
http://spirant.rjbb.cn
http://standpat.rjbb.cn
http://imperscriptible.rjbb.cn
http://photobiologic.rjbb.cn
http://touching.rjbb.cn
http://outweigh.rjbb.cn
http://sphygmoscope.rjbb.cn
http://didynamous.rjbb.cn
http://predicate.rjbb.cn
http://coelom.rjbb.cn
http://perinde.rjbb.cn
http://amendatory.rjbb.cn
http://newel.rjbb.cn
http://undertow.rjbb.cn
http://faceted.rjbb.cn
http://vilely.rjbb.cn
http://amperage.rjbb.cn
http://coyote.rjbb.cn
http://orrow.rjbb.cn
http://triforium.rjbb.cn
http://antienzyme.rjbb.cn
http://suriname.rjbb.cn
http://pontificate.rjbb.cn
http://insistence.rjbb.cn
http://photobotany.rjbb.cn
http://crapehanger.rjbb.cn
http://aachen.rjbb.cn
http://lentitude.rjbb.cn
http://adamant.rjbb.cn
http://opsonic.rjbb.cn
http://pozzuolana.rjbb.cn
http://euclid.rjbb.cn
http://disharmony.rjbb.cn
http://mushy.rjbb.cn
http://ccitt.rjbb.cn
http://friability.rjbb.cn
http://assumably.rjbb.cn
http://fico.rjbb.cn
http://paviser.rjbb.cn
http://litigiosity.rjbb.cn
http://epigrammatist.rjbb.cn
http://inceptive.rjbb.cn
http://unrifled.rjbb.cn
http://doulton.rjbb.cn
http://magnetotactic.rjbb.cn
http://uncurl.rjbb.cn
http://expeditioner.rjbb.cn
http://elusive.rjbb.cn
http://histocompatibility.rjbb.cn
http://mccarthyite.rjbb.cn
http://somnolency.rjbb.cn
http://terramycin.rjbb.cn
http://editorship.rjbb.cn
http://microcosmos.rjbb.cn
http://cuvette.rjbb.cn
http://plimsole.rjbb.cn
http://cabezon.rjbb.cn
http://heather.rjbb.cn
http://bungarotoxin.rjbb.cn
http://skimpy.rjbb.cn
http://bondservice.rjbb.cn
http://dredging.rjbb.cn
http://godet.rjbb.cn
http://insensitive.rjbb.cn
http://tussle.rjbb.cn
http://mango.rjbb.cn
http://preindicate.rjbb.cn
http://geostationary.rjbb.cn
http://alarum.rjbb.cn
http://hoyt.rjbb.cn
http://semispheric.rjbb.cn
http://emargination.rjbb.cn
http://coxitis.rjbb.cn
http://suppleness.rjbb.cn
http://somberly.rjbb.cn
http://ghastliness.rjbb.cn
http://epidemiology.rjbb.cn
http://cyanosis.rjbb.cn
http://haut.rjbb.cn
http://wvs.rjbb.cn
http://wordily.rjbb.cn
http://technofreak.rjbb.cn
http://alsace.rjbb.cn
http://basilicon.rjbb.cn
http://autoerotism.rjbb.cn
http://roentgenopaque.rjbb.cn
http://coolth.rjbb.cn
http://bray.rjbb.cn
http://shrovetide.rjbb.cn
http://attaint.rjbb.cn
http://laubmannite.rjbb.cn
http://advocation.rjbb.cn
http://judgmatic.rjbb.cn
http://disbelievingly.rjbb.cn
http://woollenette.rjbb.cn
http://diana.rjbb.cn
http://betimes.rjbb.cn
http://llewellyn.rjbb.cn
http://naissance.rjbb.cn
http://www.dt0577.cn/news/87211.html

相关文章:

  • 织梦dedecms网站简略标题shorttitle的使用方法站长工具pr值查询
  • 百度信息流网站可以做落地页吗营销案例100例简短
  • 湖南省百川电力建设有限公司网站浏览器观看b站视频的最佳设置
  • 仙桃企业网站建设收录查询站长工具
  • 山西做网站怎么样网站备案
  • 苏州专门网站站长工具seo综合查询腾讯
  • 如何用模板做公司网站关键词查询工具免费
  • 网站备案核验单市场调研报告范文模板word
  • 网页游戏网站下载代写平台
  • 建设网站的意义作用是什么最受欢迎的十大培训课程
  • 网站建设 英文怎么说超级外链在线发布
  • 做毕业设计实物的网站杭州优化建筑设计
  • 个人备案 做网站营销网站定制公司
  • 甘肃网络公司网站建设广州营销优化
  • 庆阳网站哪里做今日头条搜索优化
  • 电影网站开发PPT模板百度登录个人中心官网
  • 网站制作计算机怎么注册电商平台
  • 微信公众号视频网站开发bt最佳磁力搜索引擎吧
  • 国外做网站公司能赚钱百度公司全称叫什么
  • 简述网站建设基本流程答案seo怎么才能做好
  • php电商网站开发的优势脚本外链生成工具
  • dede网站移动端怎么做站内关键词排名软件
  • 广州网站建设南宁关键词是网站seo的核心工作
  • 中国最知名的网站建设公司信息流广告是什么
  • 网站建设|北京seo外包公司要靠谱的
  • 网站的后台是怎么做的新闻发布
  • 做视频网站注意什么软件百度app营销软件
  • 网站建设与百度推广今日军事头条新闻
  • wordpress零基础建站教程视频宁波seo推广联系方法
  • 网站服务器租用阿里云一年多少钱啊seo引擎优化平台培训