首页 > 其他分享 >树链部分

树链部分

时间:2024-10-29 10:49:08浏览次数:1  
标签:mxson int siz dfs 树链 部分 节点

说句闲话

这个东西已经20多天没写了,感觉已经忘没了,非常糟糕,只好赶快补一补,确实还是得多打代码,不然都忘光就丸辣。

前言

树链问题通常是关于树上路径的操作,将路径拆分成一条条链,然后用线段树维护链的权值。

注:本题解并不适用于毫无基础的oier,只是做简单讲解,想了解具体定义请自行查阅。

2次dfs成链

第一次

我们先用第一次 dfs 找到每个节点的以下东西(不懂先放着,继续向下看):

  • 节点深度:为了查路径时确定哪个作为起点终点及先动深度更深的点。

  • 节点大小:一个子树是一个连续的dfs序,为了操作整颗子树。

  • 父节点:当达到链顶时为了转移到另一个链上。

  • 重儿子:为了形成重链。

void dfs1(int x,int f,int d){//当前节点,父节点,深度
	deep[x]=d;//深度 
	siz[x]=1;//大小 
	fa[x]=f;//父节点 
	int mxson=-1;//重儿子大小 
	for(int y:v[x]){
		if(y==f)
			continue;
		dfs1(y,x,d+1);
		siz[x]+=siz[y];
		if(siz[y]>mxson){//比当前已有重儿子更大,更新 
			son[x]=y;
			mxson=siz[y]; 
		} 
	}
}

标签:mxson,int,siz,dfs,树链,部分,节点
From: https://www.cnblogs.com/sadlin/p/18453506

相关文章

  • YOLOv6-4.0部分代码阅读笔记-anchor_generator.py
    anchor_generator.pyyolov6\assigners\anchor_generator.py目录anchor_generator.py1.所需的库和模块2.defgenerate_anchors(feats,fpn_strides,grid_cell_size=5.0,grid_cell_offset=0.5, device='cpu',is_eval=False,mode='af'): 1.所需的库和模块imp......
  • YOLOv6-4.0部分代码阅读笔记-assigner_utils.py
    assigner_utils.pyyolov6\assigners\assigner_utils.py目录assigner_utils.py1.所需的库和模块2.defdist_calculator(gt_bboxes,anchor_bboxes): 3.defselect_candidates_in_gts(xy_centers,gt_bboxes,eps=1e-9): 4.defselect_highest_overlaps(mask_pos,overl......
  • CerberusDet:不同任务共享不同的部分,新多任务目标检测方案
    传统的目标检测模型通常受到其训练数据和定义的类别逻辑的限制。随着语言-视觉模型的近期兴起,出现了不受这些固定类别限制的新方法。尽管这些开放词汇检测模型具有灵活性,但与传统的固定类别模型相比,仍然在准确性上存在不足。同时,更加准确的数据特定模型在需要扩展类别或合并不同......
  • 《代码大全2》第二部分阅读笔记(1)
    日常编写代码时,要注重变量的命名与使用。变量的命名应该具有清晰的语义,能够准确反映其代表的含义,并且要遵循一定的命名规范。同时,在使用变量时要注意其作用域和生命周期的合理控制,以避免错误和提高代码的可读性与可维护性。作者通过实际代码示例指出,不清晰的变量命名会导致代码理......
  • 《代码大全2》第二部分阅读笔记(2)
    编写高质量的函数:函数应该具有单一的明确功能,函数体要短小精悍,避免过长和复杂。同时,要注意函数的参数设计合理,返回值清晰明确,并且函数之间的耦合度要低,内聚性要高。如一个函数承担了过多不同的任务,导致函数逻辑混乱,难以理解和维护。而高质量的函数,如计算两个数之和的简单函数,功能......
  • 2024 四川省大学生信息安全技术大赛 安恒杯 部分 WP
    文章目录一、前言二、MISCunzip-png拓展第47张图片重要的文件三、WEB四、CRYPTO五、REVERSE一、前言WP不完整,仅供参考!除WEB外,其余附件均已打包完毕,在这里也是非常感谢师傅的附件支持!123网盘下载:https://www.123pan.com/s/q2J1jv-vRJvd?提取码:0905提取码:09......
  • 字节跳动青训营 X 豆包MarsCode入营考核部分题解
    中等:观光景点组合得分问题小R正在研究一组观光景点,每个景点都有一个评分,保存在数组 values 中,其中 values[i] 表示第 i 个观光景点的评分。同时,景点之间的距离由它们的下标差 j-i 表示。一对景点 (i<j) 的观光组合得分为 values[i]+values[j]+i-j,也就......
  • 微信小程序开发——部分不错的网站推荐,可以搭配使用
    1、介绍-VantWeappVant是一个轻量级、可靠的Vue组件库,专为移动端开发设计。它在网页开发中的作用主要体现在以下几个方面:1. 丰富的组件库Vant提供了多种常用的UI组件,如按钮、输入框、弹出框、滑动条等,帮助开发者快速构建移动端应用界面。这些组件设计符合移动端......
  • 网页设计:第一部分HTML
    2024.10.21  今天练习了文本和各种标签标题标签:<title>用于显示菜单地址栏的标题                 <h1>、<h2>.....<h6>标题用于文本中,大小逐渐变小段落标签:<p> 默认每个段落前没有缩进     换行标签:<br/>文本标签:粗体:<strong>、<b> ......
  • 在K8S中,体系结构有哪些不同的组成部分?
    Kubernetes(简称K8s)的体系结构是一个复杂但高度组织化的系统,它包含多个不同的组成部分,这些部分协同工作以实现容器化应用程序的自动化部署、扩展和管理。以下是K8s体系结构的详细组成部分:1.控制平面(ControlPlane)控制平面是K8s集群的管理核心,负责整体的集群管理和控制。它包含以......