
树
m714星云
渣渣
展开
-
利用线段树查询一段区间内的最大值(值,下标)
题目举例: 小明要组织一台晚会,总共准备了 n 个节目。然后晚会的时间有限,他只能最终选择其中的 m 个节目。 这 n 个节目是按照小明设想的顺序给定的,顺序不能改变。 小明发现,观众对于晚会的喜欢程度与前几个节目的好看程度有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推。 小明给每个节目定义了一个好看值,请你帮助小明选择出 m 个节目,满足他的要求。...原创 2020-04-06 17:22:42 · 1313 阅读 · 0 评论 -
二叉树
最常见的问题 知道两个遍历的顺序,求另一个遍历的顺序 二叉树的遍历 层序遍历 先序遍历 中序遍历 后序遍历 练习 1710 Binary Tree Travesals(先序,中序求后序) ...原创 2019-12-06 21:09:19 · 100 阅读 · 0 评论 -
并查集
合并优化 通过记录高度,高度相同两者中取一个当作根节点,然后高度加1。高度不相同的,将高度矮的加到高度高的上面去,高树的高度不变。 void unions(int x,int y){ x=find(x); y=find(y); if(height[x]==height[y]){ s[x]=y; height[y]+=1; }else{...原创 2019-12-06 10:57:13 · 154 阅读 · 1 评论 -
AVL树
1. 结点类定义 data 用来存结点的值 height 用来存节点的高度,用来计算BF因子 left和right为其左右子树 struct node{ int data; int height; node *left,*right; }; typedef node* Avltree; 2. 计算每个结点的高度—>(继而算出BF) 采用递归求解树的高度,取左右子...原创 2019-11-16 11:39:00 · 94 阅读 · 0 评论