05 2022 档案

摘要:这道题一眼就知道是并查集,创个int型数组按步骤写就好了。 哈哈如果这样想简单了就错了。看一下题目的数据范围: 编号最大值达到了$109$,但是不同的编号最多只有$2\times 105$个,问题就出在这里。如果创建一个有10亿个元素的int数组,那内存明显不够用。所以需要将数组离散化。这里使用ST 阅读全文
posted @ 2022-05-30 20:21 带带绝缘体 阅读(44) 评论(0) 推荐(0)
摘要:代码的注意点: AVL树重新平衡最核心的思想是找到离新加入的节点最近的失衡节点。 insert操作的基础是插入新节点前子树已经是一个AVL树,这是根据平衡因子判断树型的依据。 不要把BF作为node的成员变量,因为在左旋/右旋后BF的实际值就会改变,而在判断LL/LR/RR/RL型树时使用未更新的B 阅读全文
posted @ 2022-05-15 17:41 带带绝缘体 阅读(48) 评论(0) 推荐(0)
摘要:这道题的题意大概为根据所给的序列seq建立一棵BST,然后判断: 如果BST的前序遍历序列与seq相同,就输出BST的后序遍历序列; 如果BST的镜像树前序遍历序列与seq相同,就输出BST的镜像树的后序遍历序列。 思路很简单,分别求出BST的前序遍历序列与BST的镜像树的前序遍历序列,然后判断它们 阅读全文
posted @ 2022-05-12 20:00 带带绝缘体 阅读(54) 评论(0) 推荐(0)
摘要:这是一道关于树遍历的题。基本的思路是使用树的静态写法,即使用数组储存树。然后使用DFS进行搜索,注意使用剪枝的思想,即遇到已经不可能产生目标的路径时就放弃这一子树。 易错点在于对结果进行排序。《算法笔记》中关于这道题的解法是有问题的,它使用的方法是在读输入时就将子节点按照权重降序排序,然后之后直接D 阅读全文
posted @ 2022-05-11 22:49 带带绝缘体 阅读(52) 评论(0) 推荐(0)
摘要:这道题要求根据二叉树的后序遍历序列与中序遍历序列还原二叉树,并输出其层次遍历序列。 后序遍历序列是为了提供子树的根节点。对于一棵子树对应的后序遍历序列与中序遍历序列,后序遍历序列的最后一个元素就是子树的根节点。然后找到中序遍历序列中根节点的位置,它左部的子序列就是左子树的元素,右部的子序列就是右子树 阅读全文
posted @ 2022-05-10 19:59 带带绝缘体 阅读(63) 评论(0) 推荐(0)
摘要:为了学C socket编程,最近安装了ubuntu虚拟机,然后由于安不了VS这种的IDE,所以本鼠只好学怎么写makefile。教程看的C语言中文网教程:http://c.biancheng.net/view/7153.html。 虚拟机上代码的目录结构为: 由于makefile文件与源文件不在同一 阅读全文
posted @ 2022-05-09 23:03 带带绝缘体 阅读(59) 评论(0) 推荐(0)
摘要:给定一张 N 个点 M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N,M,接下来 M 行每行两个整数 x,y,表示从 x 到 y 的一条有向边。 输出格式 输出共 N 行,表示每个点能够到达的点的数量。 数据范围 1≤N,M≤30000 输入样例: 10 阅读全文
posted @ 2022-05-04 18:01 带带绝缘体 阅读(59) 评论(0) 推荐(0)
摘要:看到结果可能取很大的值,就可以猜到要用DP。关键在于使用dp的话要按照什么顺序。题目使用的是有向图且食物链有先后顺序,所以联想到拓扑排序,使用拓扑排序得到拓扑序列,从而进行dp。dp[i]表示当前以i为结尾的食物链的条数(此时假设i没有出边)。假设节点i的后继是节点j,那么处理i的时候要对节点的出度 阅读全文
posted @ 2022-05-04 16:13 带带绝缘体 阅读(52) 评论(0) 推荐(0)
摘要:在一个热带雨林中生存着一群猴子,它们以树上的果子为生。 昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上。 猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的不同树冠上来回穿梭,以找到喜欢吃的果实。 现在,在这个地区露出水面的有 N 棵树,假设每棵树本 阅读全文
posted @ 2022-05-02 17:12 带带绝缘体 阅读(52) 评论(0) 推荐(0)