二叉搜索树:二叉搜索树根节点的左边都比根节点小,右边都比根节点大。例题:输入一个数组,判断是否为二叉搜索树的后序遍历序列,如果是,返回true,如果不是,返回flase,假设没有重复的元素。思路:由于是后序遍历,所以数组的最后一个节点是根节点,而且,由于是二叉收索树,所以,前面的数据被分为两部分,右...
分类:
编程语言 时间:
2015-08-18 13:51:27
阅读次数:
136
题意:给一颗树,根节点深度为1,每一个节点都代表一个子母。数据输入:节点数 询问数从编号为2的节点开始依次输入其父节点的编号(共有节点数减1个数字输入)字符串有节点数个小写字母接下来询问a b代表以a为根节点的子树在深度为b(包含)的范围内所有节点的字母能否组成回文串。能输出Yes,不能输出No思路...
分类:
其他好文 时间:
2015-08-17 11:48:11
阅读次数:
160
通道题意:给一个树,树上每个节点都有两个属性:忠诚度和能力,给出若干查询,求每个子树中能力 > 树根能力的点中,忠诚度最高的那个思路:子树dfs序即可,然后忠诚度排个序,取能力值大于u且忠诚度最高的,虽然线段树也可以搞,练练分块。代码:#pragma comment(linker, "/STACK:...
分类:
其他好文 时间:
2015-08-17 11:26:45
阅读次数:
215
题意:
告诉你一颗树的父子关系,1节点为根,再告诉你每个点上的字母。
问 v节点 子树(包括v节点)在第h行的所有节点的字母能否组成回文串。
做法:
先用dfs 搜索 把所有节点标个左标号和右标号。 这样标号以后,每个节点 用左标号 当自己 新的标号。 然后 子树所有节点 的新标号 肯定在 子树根节点的 左右标号之间。
标号之后分层来做。
每层 对每个字母分别做统计。
把该层所有节点 的 左标号 在树状数组中+1. 然后对于该层的所有询问 做 树状数组统计,(sum(rit[v])-sum(lft[v...
分类:
编程语言 时间:
2015-08-16 12:26:18
阅读次数:
167
set集合容器是使用红黑树[一种二叉检索树的数据结构]来组织泛化的元素数据。元素数据的检索使用的是二叉检索树的中序遍历算法,检索的效率高于vector、deque、和list等容器,由于采用中序遍历算法可以将二叉检索树中的键值由小到大遍历出来,所以set集合容器蕴含了元素间的有序性。红黑树的每个节点包含一个取值为红色或者黑色的颜色域,节点键值的插入必须确保树根节点的键值大于左子树所有节点的键值,而小...
分类:
其他好文 时间:
2015-08-14 13:43:47
阅读次数:
274
题目链接:hdu 5379 Mahjong tree
树形dp,每个节点最多有2个子节点为一棵节点数大于1的子树的根节点,而且要么后代的节点值都大于,要么都小于本身(所以tson不为0是,要乘2)。对于K个单一节点的子节点,种类数即为全排K!。当一个节点没有兄弟节点时,以这个节点为根结点的子树,根可以选择最大或者最小。
#pragma comment(linker, "/STA...
分类:
其他好文 时间:
2015-08-12 23:37:53
阅读次数:
171
/** * 打印从根到叶子各个节点和为iSum的路径 * @param pNode 树根节点(该函数不负责判空操作) * @param iSum 所要查找的路径和 * @param path 路径(数组长度为树的深度,可用容器替代) * @param size 路径长度(初始值为0) */vo...
分类:
其他好文 时间:
2015-08-10 22:00:54
阅读次数:
114
ProblemB.TreeInputfile:tree.inOutputfile:tree.outTimelimit:2secondsMemorylimit:256megabytes香香有一棵高度为h的完全二叉树,根节点的标号为1,高度为1,对于每个非叶子节点i,高度h,它的左儿子的标号为2*i,高...
分类:
其他好文 时间:
2015-08-09 22:01:01
阅读次数:
110
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode*root,请返回一个bool,代表这棵树是否平衡。import java.util.*;/*public class TreeNode { int ...
分类:
其他好文 时间:
2015-08-06 10:38:32
阅读次数:
249
通道题意:给出一棵树,根节点是1,要求根据以下要求选择最多的节点:①不能选择1②若选择当前节点,那么该节点的父节点和儿子都不能选择。③若某节点的某一个儿子节点被选择,那么该节点的其他儿子不能被选择样例分析图:思路:用dp[u][2]表示u节点是否被选择的最大值,则dp[u][1]=sum{dp[v]...
分类:
其他好文 时间:
2015-08-05 22:05:41
阅读次数:
144