题意概述:给出一棵树,初始每个结点有不同的颜色。现在支持三种操作:1.把某个结点的颜色改成一个之前都没有出现过的颜色,并将这个点到当前树根路径上的所有点全部改成这个颜色;2.改变当前的树根到另外一个点,并对原来的树根进行一次操作1;3.把询问当前形态的树中对一个点的子树中所有点进行操作1的平均代价(... ...
分类:
其他好文 时间:
2018-03-02 18:52:09
阅读次数:
152
输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替), ...
分类:
其他好文 时间:
2018-03-01 00:50:46
阅读次数:
177
题意概述: 给出一棵N个结点的树,然后有M个居民分散在这棵树的结点上(允许某个结点没有居民)。现在给出一些询问形如u,v,a,定义k=min(x,a),其中x表示的是u->v路径上的居民数量。将所有路径上的居民编号升序排列之后得到序列p1,p2,...,px,要求对于每一组询问,输出k,p1,p2... ...
分类:
其他好文 时间:
2018-02-22 21:31:42
阅读次数:
177
1 什么是Trie Trie也叫前缀树,因为存放和查找的时候都是将关键字字符串从前到后一个字母一个字母的进行的,所以叫前缀树。根节点不存放字母,其它的每个结点都存放一个字母。如果某个结点的字母是要给关键字的最后一个字母,那么该节点还存放该路径对应的关键字的值。也就是说,整个关键字字符串存放在一条路径 ...
分类:
其他好文 时间:
2018-02-09 14:50:38
阅读次数:
225
一、堆的概念 所谓堆,它是一个数组,也能够被看成一个近似的全然二叉树。树上每一个结点相应数组的一个元素。二叉堆分为二种:最大堆和最小堆。本文主要介绍最大堆,最小堆类似。最大堆的特点:对于随意某个结点,该结点的值大于左孩子、右孩子的值,可是左右孩子的值没有要求。 二、堆排序算法 首先,按堆的定义将数组 ...
分类:
编程语言 时间:
2017-12-02 15:12:16
阅读次数:
136
题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如上图中, 若医院建在1 处,则距离和=4+12+2*20+2*40=136;若医院建在3 处,则距离和 ...
分类:
其他好文 时间:
2017-12-02 13:08:26
阅读次数:
124
思路:直接将后续结点的数据复制过来,然后删除后续结点。 坑:如果这个结点是链表的尾结点,那么此题无解。可以将该结点标记为假。 ...
分类:
编程语言 时间:
2017-10-31 14:27:04
阅读次数:
232
题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 分析: 先匹配到A的某个结点和B的根相同,然后往下继续匹配。不匹配则递归匹配左右子树。 代码: ...
分类:
其他好文 时间:
2017-10-29 12:43:46
阅读次数:
153
http://www.cnblogs.com/lkcc/p/7684077.html 题意:给你一棵树,每个结点 0 、 1 标记。有二种操作( 查询某个结点及其子结点 1 的个数、将某个结点及其子结点的标记取反)。 题解:线段树 w[i] 表示 i 结点在线段树上对应的编号, End[i] 表示 ...
分类:
其他好文 时间:
2017-10-25 00:31:06
阅读次数:
284
题解:给你一棵树,要求你选择一些点建立信号站,使得每一个点到这些信号站的距离数组dis都不一样(注意是数组不一样) 题解: 树形dp 1、若在两点x,y建立信号站,那么x->y路径上的所有点的dis数组都不一样 2、考虑选择一个点为根并标记,那么尽量选择叶子标记,这样链越长,贡献越大 3、若某个结点 ...
分类:
其他好文 时间:
2017-09-26 17:38:02
阅读次数:
174