打表,发现规律是存在一定次数(较小)后,会出现a=(a*a)%p。可以明显地发现本题与线段树有关。设置标记flag,记录本段内的数是否均已a=a*a%p。若是,则不需更新,否则更新有叶子结点,再pushup。#include #include #include #include #define LL...
分类:
其他好文 时间:
2015-05-30 10:41:48
阅读次数:
224
堆的定义、堆的存储和堆排序一. 堆的定义、堆的存储、堆排序在堆排序 Heap Sort中介绍的比较好,堆排序主要涉及两个问题:如何由一个无序序列构造初始堆?由于叶节点已经满足了堆的性质,所以只需从最后一个非叶子节点向下调整,然后从倒数第二个非叶子节点向下调整,...,最后从堆顶向下调整。这一过程可以...
分类:
编程语言 时间:
2015-05-27 11:49:33
阅读次数:
227
$(function() {
$('#tt').combotree({
url: 'getTree.do',
onBeforeSelect: function(node) {
if (!$(this).tree('isLeaf', node.target)) {
return false;
...
分类:
其他好文 时间:
2015-05-26 23:29:10
阅读次数:
196
堆堆:经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子结点的值。最大堆和最小堆是二叉堆的两种形式。最大堆:根节点的键值是所有堆结点键值中最大者。最小堆:根节点的键值是所有堆结点键值中最小者。最大-最小堆:集结了他俩的优点。是最大层和最小层交替出现的二叉树,即最大层节点...
分类:
其他好文 时间:
2015-05-26 01:37:39
阅读次数:
222
树由很多结点组成。结点的度:结点拥有的直接子结点数。叶子:度为0的结点。树的度:所有结点的度中的最大值。一个结点的直接子结点称为它的孩子。双亲。兄弟:相同双亲的孩子结点。一个结点的祖先:从跟到该结点所经过的所有结点。树的层次:根记为第一层,层次也称为树的深度。双亲在同一层的结点互称为堂兄弟。
分类:
其他好文 时间:
2015-05-25 18:32:48
阅读次数:
114
水题一道,没有用到特别的方法。
根据 000,010,111,110 这些二进制数字转化为十进制得知该查询是哪一个叶子节点的值。#include
#include
#include
#include
using namespace std;const int maxn = 10+2;
int n,m;
int labe...
分类:
其他好文 时间:
2015-05-24 01:26:32
阅读次数:
206
区间更新
区间求和
思想:懒处理,对于区间更新不需要将更新具体到叶子结点,只在需要更新的时候,再细化处理。代码:import java.util.Scanner;class SegmentTree{
class Node{
int left;
int right;
long sum;
long addValue;
}...
分类:
其他好文 时间:
2015-05-23 20:08:05
阅读次数:
130
给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)
样例
给出一棵二叉树:
1
/ 2 3
返回 6
分析:每条最长路径都肯定会以某个顶点为跟,然后两边是以那个节点为跟到叶子节点的最长路径。
代码:
/**
* Definition of Tre...
分类:
其他好文 时间:
2015-05-21 22:34:54
阅读次数:
268
【二叉树特点】二叉树由根结点,左子树和右子树构成,具有以下几个典型特点:
只有一个根节点,每个结点下面最多只有两棵树;
在二叉树的第i层上至多有2^(i-1)个结点(i>=1);
深度为k的二叉树至多有(2^k) -1个结点(k>=1);
对任意一颗二叉树,如果叶子结点数为n0,度为2的结点(结点拥有的子树数就是度)点数为n2,则n0 = n2 + 1;
对于第4个特点,需要特别解释一下,可以从连...
分类:
其他好文 时间:
2015-05-21 19:36:32
阅读次数:
167
红黑树的平衡红黑树首先是一棵二叉查找树,它每个结点都被标上了颜色(红色或黑色),红黑树满足以下5个性质:1、每个结点的颜色只能是红色或黑色。2、根结点是黑色的。3、每个叶子结点都带有两个空的黑色结点(被称为黑哨兵),如果一个结点n的只有一个左孩子,那么n的右孩子是一个黑哨兵;如果结点n只有一个右孩子...
分类:
其他好文 时间:
2015-05-21 06:36:45
阅读次数:
141