自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 SBT总结

SBT节点大小平衡树总结SBT是二叉查找树的优化。与二叉平衡树AVL类似,我们定义一棵树:这棵树的size为这棵树所有节点的个数每棵子树的大小不小于其兄弟的子树大小即s[right[t]]≥s[left[left[t]]],s[right[left[t]]]且 s[left[t]]≥s[right[right[t]]]

2016-08-04 21:44:17 580

原创 AVL树总结

AVL树总结AVL树是二叉查找树的一种优化,能将链状的二叉查找树几乎平均地储存下来,从而减少搜索使用的时间。 AVL树是空树,或满足以下定义的树:1、左右子树都是AVL树;(递归定义)2、左右子树高度之差不超过1; 定义平衡因子:左子树高度-右子树高度,当平衡因子大于等于2时,我们就称这棵树不平衡,需要通过旋转让它重新

2016-08-04 21:00:47 731

原创 树状数组总结

树状数组总结树状数组是一个类似于线段树的树状结构,它通过存储一定区间内的元素来达到快速插入、快速求和的效果。并且可以节省时间,节省空间,减少代码量,可谓是非常优秀的一个树形结构方格中数字代表对应数组的第几个元素,下排是a数组,其上方的是e数组,最下的二进制则是对应编号的二进制表示.可以观察到,树状数组把一个数组内的元素进行了一定的二分,并存储某些元素的和

2016-08-03 21:03:52 878

原创 线段树总结

线段树总结引入:有一个数组data[1000000],如果有m个操作(m,操作如下:修改一个数(加或减)求l到r的所有元素的和 对于通常的题目,用一个sum[i]数组记录1~i的和,即可将任何的区间和在O(1)的时间之内求出。然而对于操作一,显然就显得很耗时间,至少会花费O(n),由此可以看出这样的做法是有一定缺陷的,由此线段

2016-08-01 20:54:56 573

原创 字典树总结

字典树总结在实际生活中,图书馆、书店都会遇到一种麻烦,就是不知道如何储存所有的书名,因为藏书实在是太多了。这种情形非常常见。由此单词查找树便出现了:Trie树,是一种树形结构,是一种哈希树的变种,它通过储存大部分字符串的前缀来达到不仅是存储空间而且是查找效率的优化。字典树的操作大致分为三种:插入字符串、查找字符串、删除字符串。 首先我们要构造一棵

2016-07-31 20:25:37 570 1

原创 树形动态规划总结

树形动规总结树型动规的基本方式同普通的线性动态规划,但遍历的顺序是由高深度向低深度直至根节点,通常一个树型动规包括了状态、阶段、决策、状态转移方程,找到每个题目对应的动归要素,是一个题目的难点所在。状态:程序求解到每个程度所储存的信息,通常我们需要在一开始找到适合题目的状态并进行定义。Tips:找状态可以通过确定变量,权衡变量的范围来寻找。阶段:

2016-07-29 19:24:20 943 1

原创 可并堆之左偏树总结

可并堆之左偏树总结左偏树,顾名思义,是左边的结点权值较大的树形数据结构。主要用于两个优先队列的快速合并,是可并堆的一种实现方式。定义与性质:外结点:一个结点的右子结点为空就为外结点距离:结点一直向右,直到外结点所经历的步数,每个结点距离等于右儿子的距离+1。左偏树的父亲结点的优先级高于儿子结点父亲结点的左子节点的距

2016-07-28 21:50:02 936 1

原创 字符串hash,康托展开总结

字符串hash,康托展开总结各种字符串hash函数:ELF HashBKDRHashAPHashDJBHashJSHashRSHashSDBMHashPJWHashELFHash 字符串hash之BKDRhash函数有研究表明BKDRhash函数冲突率较低,且变成复杂度低,所以可以用来作为常用hash函数Has

2016-07-27 21:35:20 1168 1

原创 离散hash优化总结

离散优化总结离散优化是一种常见的高效数据结构,它通过建立数据与存储结构(数组)之间(不一定)一一对应的映射关系来达到对复杂数据的优化。离散优化最重要的一点是建立映射,对于特殊的线段、点而言,这些映射可以是对一个区间的映射,即将某段线或者某块区域映射到数组里面去,从而在计算时降低时间复杂度。Hash优化:是对于字符串和数字的一种优化方式。它通过将数据映射到数组内的某个元素从而

2016-07-26 21:24:58 4065 1

原创 求最大网络流(最小割)总结

求最大网络流总结      一个有向图,每条边都有最大可能的数据传输量c,要求一个点到某个点一次能传输的最大数据量,即为求最大网络流,每条边实际的数据传输量称为流量。      基本思路:使用贪心算法,每次找出能使总流量更大的边,将数据向那条边流。 Ford-fulkerson算法读入所有有向边,并且加入流量为0的反向

2016-07-20 21:07:56 1836 1

原创 Tarjan算法求无向图割边割点、最近公共祖先的总结

无向图tarjan求割边割点、最近公共祖先总结割点:删除这个点之后整个图变成不连通的两个部分的点割点集合:在一个无向图中删除该集合中的所有点,能使原图变成互不相连的连通块的点的集合点连通度:最小割点集合点数割边(桥):类似于割点,删除一条边后会使一个连通图变得不完全连通割边集合:所有割边的集合边连通度:最小割边集合边数 与

2016-07-19 19:49:27 2450 1

原创 Tarjan算法求强连通分量总结

Tarjan算法求强连通分量总结首先明确强连通分量的概念:如果图中的任意两个点都能互相到达,则为强连通分量。极大强连通分量:不被其它任何强连通分量包含的强连通分量。强连通分量主要与两种边有关:交叉边和后向边。交叉边是两个无关系的点之间所构成的,而后向边是根节点的子节点指向根结点的一种边Tarjan算法原理:建立low数组

2016-07-18 19:12:21 1499 1

原创 拓扑排序以及关键路径总结

拓扑排序以及关键路径的总结      拓扑排序:首先纠正一个读音问题:拓扑(tuopu)话说我好几次都读成(tabu) (tuobu)好吗!      拓扑排序是针对AOV图(即有向无边图,且图中不允许环的存在)的一种排序算法,它用于将一个AOV图按照顺序排成线性序列       基本操作如下:

2016-07-17 20:08:29 2289 2

原创 最小生成树总结

今天学到了最小生成树算法中的Prim算法和Kruskal算法。

2016-07-15 17:17:34 637 1

原创 暑假测试一总结

暑期测试一 数学作业(homework.cpp)【问题描述】求:方程x1+2x2+„+nxn=m的所有非负整数解(x1,x2,„,xn)的个数。例如,方程:x1+2x2+3x3+4x4+5x5=5有7组解:(5,0,0,0,0)、(3,1,0 ,0,0)、……、(0,0,0,0,1)。 【输入数据】(homewor

2016-07-14 20:40:29 477 1

原创 Minecraft题解

7216:Minecraft 总时间限制: 1000ms 内存限制: 65536kB描述Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一

2016-02-03 00:01:24 3160 4

原创 打印月历题解

24:打印月历总时间限制: 1000ms 内存限制: 65536kB描述给定年月,打印当月的月历表。输入输入为一行两个整数,第一个整数是年份year(1900 ≤ year ≤ 2099),第二个整数是月份month(1 ≤ month ≤ 12),中间用单个空格隔开。输出输出为月历表。月历表第一行为星期表头,如下所示:Sun Mon Tue Wed

2016-01-30 23:03:40 2843

原创 大整数乘法题解

09:大整数乘法总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的积。输入 有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出 一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入 1234567890098765432100

2016-01-25 17:08:24 1192

原创 2的幂次方表示题解

8758:2的幂次方表示总时间限制: 1000ms内存限制: 65536kB描述任何一个正整数都可以用2的幂次方表示。例如:    137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:    2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)        3=2+20所以最后137

2016-01-25 08:57:34 5456

原创 逆波兰表达式题解

1696:逆波兰表达式 总时间限制: 1000ms内存限制: 65536kB描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个

2016-01-24 15:30:21 7877 1

原创 Vigenère密码题解

08:Vigenère密码总时间限制: 1000ms内存限制: 65536kB描述16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密

2016-01-23 19:06:51 5175

原创 铺地毯题解

14:铺地毯总时间限制: 1000ms内存限制: 65536kB描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n张地毯,编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意

2016-01-23 10:52:50 1239

原创 螺旋矩阵题解

螺旋矩阵(matrix.cpp)【问题描述】一个n行n列的螺旋矩阵可由如下方法生成:从矩阵的左上角(第1行第1列)出发,初始时向右移动;如果前方是未曾经过的格子, 则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入1, 2, 3, ... , n2,便构成了一个螺旋矩阵。下图是一个n = 4 时的螺旋矩阵。  现给出矩阵大小n以及i

2016-01-23 10:48:01 3867 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除