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

廊坊模板建站代理2017建站之星怎么样

廊坊模板建站代理,2017建站之星怎么样,h5旅游网站开发,做网站都需要具备什么LeetCode 边权重均等查询 2846. 边权重均等查询 - 力扣#xff08;LeetCode#xff09; 题目描述 现有一棵由 n 个节点组成的无向树#xff0c;节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges #xff0c;其中 edges[i] [ui, vi,…LeetCode 边权重均等查询 2846. 边权重均等查询 - 力扣LeetCode 题目描述 现有一棵由 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 输入n 7, edges [[0,1,1],[1,2,1],[2,3,1],[3,4,2],[4,5,2],[5,6,2]], queries [[0,3],[3,6],[2,6],[0,6]] 输出[0,0,1,3] 解释第 1 条查询从节点 0 到节点 3 的路径中的所有边的权重都是 1 。因此答案为 0 。 第 2 条查询从节点 3 到节点 6 的路径中的所有边的权重都是 2 。因此答案为 0 。 第 3 条查询将边 [2,3] 的权重变更为 2 。在这次操作之后从节点 2 到节点 6 的路径中的所有边的权重都是 2 。因此答案为 1 。 第 4 条查询将边 [0,1]、[1,2]、[2,3] 的权重变更为 2 。在这次操作之后从节点 0 到节点 6 的路径中的所有边的权重都是 2 。因此答案为 3 。 对于每条查询 queries[i] 可以证明 answer[i] 是使从 ai 到 bi 的路径中的所有边的权重相等的最小操作次数。示例 2 输入n 8, edges [[1,2,6],[1,3,4],[2,4,6],[2,5,3],[3,6,6],[3,0,8],[7,0,2]], queries [[4,6],[0,4],[6,5],[7,4]] 输出[1,2,2,3] 解释第 1 条查询将边 [1,3] 的权重变更为 6 。在这次操作之后从节点 4 到节点 6 的路径中的所有边的权重都是 6 。因此答案为 1 。 第 2 条查询将边 [0,3]、[3,1] 的权重变更为 6 。在这次操作之后从节点 0 到节点 4 的路径中的所有边的权重都是 6 。因此答案为 2 。 第 3 条查询将边 [1,3]、[5,2] 的权重变更为 6 。在这次操作之后从节点 6 到节点 5 的路径中的所有边的权重都是 6 。因此答案为 2 。 第 4 条查询将边 [0,7]、[0,3]、[1,3] 的权重变更为 6 。在这次操作之后从节点 7 到节点 4 的路径中的所有边的权重都是 6 。因此答案为 3 。 对于每条查询 queries[i] 可以证明 answer[i] 是使从 ai 到 bi 的路径中的所有边的权重相等的最小操作次数。 提示 1 n 104edges.length n - 1edges[i].length 30 ui, vi n1 wi 26生成的输入满足 edges 表示一棵有效的树1 queries.length m 2 * 104queries[i].length 20 ai, bi n 思路 代码 C class Solution { public:vectorint minOperationsQueries(int n, vectorvectorint edges, vectorvectorint queries) {vectorvectorpairint, int g(n);for (auto e: edges) {int x e[0], y e[1], w e[2] - 1;g[x].emplace_back(y, w);g[y].emplace_back(x, w);}int m 32 - __builtin_clz(n); // n 的二进制长度vectorvectorint pa(n, vectorint(m, -1));vectorvectorarrayint, 26 cnt(n, vectorarrayint, 26(m));vectorint depth(n);functionvoid(int, int) dfs [](int x, int fa) {pa[x][0] fa;for (auto [y, w]: g[x]) {if (y ! fa) {cnt[y][0][w] 1;depth[y] depth[x] 1;dfs(y, x);}}};dfs(0, -1);for (int i 0; i m - 1; i) {for (int x 0; x n; x) {int p pa[x][i];if (p ! -1) {int pp pa[p][i];pa[x][i 1] pp;for (int j 0; j 26; j) {cnt[x][i 1][j] cnt[x][i][j] cnt[p][i][j];}}}}vectorint ans;for (auto q: queries) {int x q[0], y q[1];int path_len depth[x] depth[y]; // 最后减去 depth[lca] * 2int cw[26]{};if (depth[x] depth[y]) {swap(x, y);}// 让 y 和 x 在同一深度for (int k depth[y] - depth[x]; k; k k - 1) {int i __builtin_ctz(k);int p pa[y][i];for (int j 0; j 26; j) {cw[j] cnt[y][i][j];}y p;}if (y ! x) {for (int i m - 1; i 0; i--) {int px pa[x][i], py pa[y][i];if (px ! py) {for (int j 0; j 26; j) {cw[j] cnt[x][i][j] cnt[y][i][j];}x px;y py; // x 和 y 同时上跳 2^i 步}}for (int j 0; j 26; j) {cw[j] cnt[x][0][j] cnt[y][0][j];}x pa[x][0];}int lca x;path_len - depth[lca] * 2;ans.push_back(path_len - *max_element(cw, cw 26));}return ans;} };Java class Solution {public int[] minOperationsQueries(int n, int[][] edges, int[][] queries) {Listint[][] g new ArrayList[n];Arrays.setAll(g, e - new ArrayList());for (var e : edges) {int x e[0], y e[1], w e[2] - 1;g[x].add(new int[]{y, w});g[y].add(new int[]{x, w});}int m 32 - Integer.numberOfLeadingZeros(n); // n 的二进制长度var pa new int[n][m];for (int i 0; i n; i) {Arrays.fill(pa[i], -1);}var cnt new int[n][m][26];var depth new int[n];dfs(0, -1, g, pa, cnt, depth);for (int i 0; i m - 1; i) {for (int x 0; x n; x) {int p pa[x][i];if (p ! -1) {int pp pa[p][i];pa[x][i 1] pp;for (int j 0; j 26; j) {cnt[x][i 1][j] cnt[x][i][j] cnt[p][i][j];}}}}var ans new int[queries.length];for (int qi 0; qi queries.length; qi) {int x queries[qi][0], y queries[qi][1];int pathLen depth[x] depth[y];var cw new int[26];if (depth[x] depth[y]) {int temp x;x y;y temp;}// 让 y 和 x 在同一深度for (int k depth[y] - depth[x]; k 0; k k - 1) {int i Integer.numberOfTrailingZeros(k);int p pa[y][i];for (int j 0; j 26; j) {cw[j] cnt[y][i][j];}y p;}if (y ! x) {for (int i m - 1; i 0; i--) {int px pa[x][i];int py pa[y][i];if (px ! py) {for (int j 0; j 26; j) {cw[j] cnt[x][i][j] cnt[y][i][j];}x px;y py; // x 和 y 同时上跳 2^i 步}}for (int j 0; j 26; j) {cw[j] cnt[x][0][j] cnt[y][0][j];}x pa[x][0];}int lca x;pathLen - depth[lca] * 2;int maxCw 0;for (int i 0; i 26; i) {maxCw Math.max(maxCw, cw[i]);}ans[qi] pathLen - maxCw;}return ans;}private void dfs(int x, int fa, Listint[][] g, int[][] pa, int[][][] cnt, int[] depth) {pa[x][0] fa;for (var e : g[x]) {int y e[0], w e[1];if (y ! fa) {cnt[y][0][w] 1;depth[y] depth[x] 1;dfs(y, x, g, pa, cnt, depth);}}} }
http://www.zqtcl.cn/news/56509/

相关文章:

  • 深圳有效网站制作哪家公司好网站网址没有被百度收录
  • zeronet网站开发wordpress 幻灯数据库
  • 国家重大建设项目库填报网站本地网站地图生成器
  • 遵义网站制作的网站网站建设课程设计实验报告
  • 百度网站风格怎么自己做充值网站
  • 健身器材网站源码恩施建设银行网站
  • 茂名企业建站程序网站建设找哪家公司
  • 浙江省品牌建设联合会网站photoshop怎么修改图片上的文字
  • 伊春网站推广网站高质量链群怎么做
  • 手机上怎么上传网站wordpress退货插件
  • 手机模板的网站哪个好西安今天刚刚发生的新闻
  • 山西住房和建设厅网站企业seo解决方案
  • 网站策划方案实例橘子建站是什么
  • 昆明做个人网站域名查询 ip
  • 个人站长做网站哈尔滨建站模板大全
  • 站长友情链接有几个网站打不开
  • 模板网站建设信息十堰公司做网站
  • 私人做网站上海自助建站官网
  • 论述电子商务网站的建设WordPress审核邮箱提醒
  • 网站怎么做qq授权登录界面河北爱站网络科技有限公司
  • 网站站点层叠样式怎么做自己做的html网页怎么发布
  • 个人名义做网站能备案吗电脑编程入门自学
  • 东营做网站seo的高水平大学建设大学网站
  • 国外做调灵风暴的网站广东省公共资源交易中心地址
  • 找做网站的个人网站建设软件哪个好
  • 洛阳微信平台网站建设阿里巴巴网站装修
  • 济南网站制作平台网站安装php
  • 网站信息抽查评估wordpress 社交登陆
  • 关于网站建设项目创业计划书网络管理系统建设方案
  • 图书拍卖网站开发遇到的问题手机短视频网站的建设