给定一棵树,初始时树为空操作1,往某个结点注水,那么该结点的子树都注满了水操作2,将某个结点的水放空,那么该结点的父亲的水也就放空了操作3,询问某个点是否有水我们将树进行dfs, 生成in[u], 访问结点u的时间戳,out[u],离开结点u的时间戳每个结点的in值对应在线段树中的区间的一点那么对于...
分类:
其他好文 时间:
2015-07-06 01:23:10
阅读次数:
110
对于给定的图G,如果从某个结点出发走一条道路,使得它恰好通过G的每一条边恰好一次,该路径成为欧拉道路。如果该路径起点终点相同,那么成为欧拉回路(可见,欧拉回路是特殊的欧拉道路)。这也是一笔画问题。
不同的图,欧拉道路和回路的判断条件也不同,当然图都必须是连通图。如果是有向图,存在欧拉道路的条件是没有或者只有两个入度不等于出度的点,并且必须是一个点的出度比入度大一(欧拉道路的起点),一个点的入度比...
分类:
其他好文 时间:
2015-06-20 09:20:52
阅读次数:
126
题意:
给出一个n个结点的环,在这个环上取一段区间(不能是整个环),使权值和最大;
m次修改某个结点权值,每次修改后输出最大值;
n,m
题解:
这道题的难点主要在于给出的是一个环而不是序列;
所以选择一个点把环拆成序列,那么就可以把问题转化成:
在一个序列中,取一段子序列,或两边都取两段序列,是权值最大;
这个答案就是在这个序列里取区间的max(最大值ma,序列和sum-...
分类:
其他好文 时间:
2015-06-04 21:11:04
阅读次数:
196
题目大意:给出一棵树,在某个选择某个结点可以覆盖和它相连的所有边,问最少选多少个结点所有边都被覆盖。
解题思路:首先将无根树转化为有根树,0为根。
用d[i][0]表示不选择结点i时覆盖以结点i为根的子树最少要多少个结点,用d[i][1]表示选择结点i时覆盖以结点i为根的子树最少要多少个结点。若结点i不选,为了和覆盖所有和结点i相连的结点,则每个儿子都必须选,若结点i选,则每个儿子选择较小的那个...
分类:
其他好文 时间:
2015-05-20 09:54:00
阅读次数:
98
Tarjan算法适用于离线批量处理多个查询请求。基本思想是以深度优先搜索的顺序访问这颗树,给这棵树的结点染色,一开始所有结点都是白色的,而当第一次经过某个结点的时候,将它染成灰色,而当第二次经过这个结点的时候——也就是离开这棵子树的时候,将它染成黑色。...
分类:
编程语言 时间:
2015-05-19 14:54:36
阅读次数:
169
二叉查找树某个结点的左子树的值都比它小,其右子树的值比它大。
要实现的主要操作
代码实现
#include
using namespace std;
// BST的结点
typedef struct node
{
int key;
struct node *lChild, *rChild,*parent;
}Node, *BST;
BST lvis=NULL...
分类:
编程语言 时间:
2015-05-16 12:03:00
阅读次数:
202
(D)DoS-Deflate是一款免费的用来防御和减轻DDoS攻击。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或iptables禁止或阻挡这些IP.安装wget http://www.inetbase.com/scripts/ddos...
分类:
其他好文 时间:
2015-05-15 12:03:43
阅读次数:
108
堆排序是利用堆积树这种数据结构设计的一种算法。
要学习堆排序,我们首先要了解什么是二叉堆:
二叉堆是完全二叉树这这是近似完全二叉树。二叉堆可分为两种形式:最大堆和最小堆。
最大堆的性质是指某个结点的值至多与起父结点的值一样大,最小堆的性质就是指某个节点的值都大于其父结点的值。下图是一个最大堆和一个最小堆。
在堆排序中我们一般使用最大堆。我们要进行堆排序,首先需要把我们的数组转化成一个最大堆...
分类:
编程语言 时间:
2015-05-10 10:01:00
阅读次数:
170
堆排序是利用堆积树这种数据结构设计的一种算法。
要学习堆排序,我们首先要了解什么是二叉堆:
二叉堆是完全二叉树这这是近似完全二叉树。二叉堆可分为两种形式:最大堆和最小堆。
最大堆的性质是指某个结点的值至多与起父结点的值一样大,最小堆的性质就是指某个节点的值都大于其父结点的值。下图是一个最大堆和一个最小堆。
在堆排序中我们一般使用最大堆。我们要进行堆排序,首先需要把我们的数组转化成一...
分类:
编程语言 时间:
2015-05-10 09:44:24
阅读次数:
133
一、概述
二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。每次插入的新的结点都是二叉排序树上新的叶子结点,在进行插入操作时,不必移动其它结点,只需改动某个结点的指针,由空变为非空即可。搜索,插入,删除...
分类:
其他好文 时间:
2015-05-03 13:24:37
阅读次数:
156