给你一棵完全二叉树,初始能量为0,根节点编号为1(也就是说最左边那条路上节点的编号分别是2^0,2^1,2^2…2^(h-1))。从根节点开始往下走k-1步,走到每个节点选择加上或减去这个节点的编号,问走完这k个节点时能量恰好为n的方案。Special Judge.在队友的提醒下(TAT我真是讨厌鹰...
分类:
其他好文 时间:
2015-11-25 18:42:28
阅读次数:
267
二叉树的定义和基本概念0.完全二叉树--》满二叉树的子树,特点->所有节点1~n和满二叉树一一对应...1.一颗深为k的完全二叉树,包含了2的k次幂-1个节点,每层最大节点数2的(k-1)次幂2.完全二叉树,深度为logN+1;3.i==1,节点i是二叉树的Root,i>1时,节点的父节点是i/2,...
分类:
其他好文 时间:
2015-11-23 06:15:15
阅读次数:
141
原文链接:线段树(Segment Tree)1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一...
分类:
其他好文 时间:
2015-11-19 18:17:29
阅读次数:
174
1、堆排序概述堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排...
分类:
编程语言 时间:
2015-11-19 10:46:50
阅读次数:
207
平衡二叉排序树
平衡二叉排序树(Balanced Binary Sort Tree),上一篇博客【数据结构】二叉排序树BST讲了BST,并且在最后我们说BST上的操作不会超过O(h),既然树高这么重要,那么BBST的研究就是为了使得树的深度在可接受的范围内渐近意义下达到O(lgn)
n个节点组成的二叉树,其高度为lgn取下限时,这棵树是理想平衡的,满足这样条件的树只有完全二叉树和满二叉树,这样...
分类:
编程语言 时间:
2015-11-17 00:26:20
阅读次数:
1194
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5524问一棵完全二叉树有多少种子树包含的节点数量不同。首先可以肯定的是,一棵完全二叉树有可能是满二叉树,满二叉树的子树依然是满二叉树。但是完全二叉树的子树有一棵是满二叉树,另一棵是完全二叉树。根据给定节点...
分类:
其他好文 时间:
2015-10-31 22:57:15
阅读次数:
258
今天看堆排序,以前没注意,写个小程序记忆一下。堆排序实际上就是个完全二叉树,试着画一棵试试,记忆算法很简单,大根堆满足跟比叶子大,小根堆反之。算法思想见百度百科:1,先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区2,再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交...
分类:
编程语言 时间:
2015-10-30 18:37:48
阅读次数:
249
Given acompletebinary tree, count the number of nodes.Definition of a complete binary tree fromWikipedia:In a complete binary tree every level, except...
分类:
其他好文 时间:
2015-10-25 16:11:08
阅读次数:
190
一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:父亲的区间是[a,b],(c=(a+b)/2)左儿子的区间是[a,c],右儿子...
分类:
其他好文 时间:
2015-10-17 17:36:37
阅读次数:
255
堆排序:时间复杂度:O(nlogN)数据结构:堆,可以认为是一个完全二叉树特点:序号为i节点的父节点序号是i/2;左孩子节点序号是2*i;右孩子节点序号为2*i+1;使用对排序的步骤:1.构造堆(全部排序)2.构造固定大小的堆,然后依次处理剩余元素(TopN)
分类:
编程语言 时间:
2015-10-12 19:23:04
阅读次数:
128