ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一通乱学【树问题相关】

2022-07-16 17:34:59  阅读:149  来源: 互联网

标签:乱学 剖分 题解 线段 查集 树链 LCA 一通 相关


只要我什么都不会,一道题就可以快乐学习一下午(

货车运输 蓝题

题目描述

A 国有 \(n\) 座城市,编号从 \(1\) 到 \(n\),城市之间有 \(m\) 条双向道路。每一条道路对车辆都有重量限制,简称限重。

现在有 \(q\) 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。

佬们的题解

最大生成树+LCA

首先我不会\(LCA\),润去看了\(LCA\),P3379 最近公共祖先(题目),然后发现\(LCA\)是个壮汉,算法标签点进去,一堆紫题真吓人。只看了倍增,明天慢慢研究其它算法。

知识点:倍增法LCA

被增法LCA(视频)

最后,这道题的大佬题解:佬的题解

Kruskal重构树+LCA

知识点:重构树

感觉就是微改了\(Kruskal\),算法逻辑像一开始没看并查集题解时,我自己写的并查集hhh。Kruskal重构树—学习笔记,主要摘抄在下面了,感觉没什么必要点进去链接。

关键摘要:

  1. 基于\(Kruscal\)框架(将边排序)

  2. 依次遍历每条边,若该边连接的两个节点\(u\)和\(v\) 不在一个并查集内,就新建一个结点\(node\),该点点权为这条边的边权

  3. 找到\(u,v\)所在并查集的根$u_i,v_i \(,连边\)( n o d e , u_ i ) ( n o d e , v_ i ) $

  4. 更新并查集$f a [ u_i ] = n o d e , f a [ v _i ] = n o d e $

遍历完原图所有边后,我们建出来的必定是一棵树,也就是我们要的kruskal重构树

注意这棵树是以最后新建的结点为根的有根树,若原图不连通,即建出的是一个森林,那么就遍历每个节点,找到其并查集的根作为其所在树的根

最后,这道题的大佬题解:佬的题解

树链剖分+线段树

首先我不会线段树,润去看了线段树:猫猫讲线段树(视频),用的不是c,不过问题不大。

然后我不会树链剖分,润去看了树链剖分:树链剖分(视频)

逻辑都不难,但是感觉很容易写错喔。明日默写一下。

最后,这道题的大佬题解:佬的题解

启发式合并

说是不用\(LCA\),感觉很神奇,待看...

佬的题解

标签:乱学,剖分,题解,线段,查集,树链,LCA,一通,相关
来源: https://www.cnblogs.com/shanzr/p/16484695.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有