数据结构
文章平均质量分 78
wust_cyl
在非洲,瞪羚每天早上醒来时,他知道自己必须跑的比最快的狮子还快,否则就会被吃掉.狮子每天早上醒来时,他知道自己必须追上跑得最慢的瞪羚,否则就会被饿死.不管你是狮子还是瞪羚,当太阳升起时,你最好开始奔跑
展开
-
wustoj (二叉树)
问题描述:根据一棵二叉树的先序和中序遍历序列,可以将该二叉树构造出来。包含多组测试数据。每组测试数据一行,给出两个由大写字母组成的字符串,分别表示某二叉树的先序和中序遍历结果。 输出该二叉树的后序遍历序列。Sample Input DBACEGF ABCDEFGBCAD CBADSample OutputACBFGEDCDAB题目分析原创 2017-10-30 23:35:03 · 1133 阅读 · 0 评论 -
俩种常见的校验码(奇偶校验码 and 海明码)
原件故障,噪声干扰等各种因素常常导致计算机在处理信息的过程中出现错误。为了防止这种错误,可将信号采用专门的逻辑电路进行编码以检查错误。1:奇偶校验码奇偶校验码是 [1] 一种增加二进制传输系统最小距离的简单和广泛采用的方法。是一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法,它是一种检错码。在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几种。最简单且应用广泛的...原创 2018-04-04 15:14:12 · 6050 阅读 · 0 评论 -
ST表
转载博主:点这里ST表学习 作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。转载 2018-04-01 10:09:22 · 1535 阅读 · 0 评论 -
HDU 1754(线段树入门)
问题描述:很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<500...原创 2017-09-17 23:00:44 · 246 阅读 · 0 评论 -
CodeForces 315B(线段树+区间更新)
问题描述:Sereja has got an array, consisting of n integers, a1, a2, ..., an. Sereja is an active boy, so he is now going to complete m operations. Each operation will have one of the three forms:Make vi-t...原创 2017-10-30 22:58:29 · 355 阅读 · 0 评论 -
线段树
线段树入门:转载博客:点击打开链接前几天开始接触线段树,其一些基本的操作还是很容易理解的,但是区间更新我着实理解了好一会(因该是本人太菜),今天有时间,所以总结一下。这篇博客主要是讲一讲线段树的一些基本操作和我的一些理解。首先我们需要知道线段树它是建立在线段的基础上的,树上的每个节点代表的是一条线段[a,b],并且树上每个点都可以维护该区间的某个性质,因此线段树在处理区间问题上是非常高效的。例如查...转载 2018-02-27 17:37:19 · 152 阅读 · 0 评论 -
线段树(求区间和)
You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask for the ...原创 2018-03-21 14:54:25 · 1563 阅读 · 0 评论 -
求逆序对数的方法(归并排序 and 树状数组)
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个序列为4 5 1 3 2, 那么这个序列的逆序数为7,逆序对分别为(4, 1), (4, 3), (4, 2), (5, 1), (5, 3), (5, 2),(3, 2)。输入描述:第一行有一个整数n(1 输出描述:输出这个原创 2018-03-19 11:44:37 · 664 阅读 · 0 评论 -
几种常见的内部排序
排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。排序分为内部排序和外部排序。随着计算机的内存不断扩大和查找算法的不断优化,外部排序用到地方不多了。设待排序的关键字序列为{12,2,16,30,28,10,16*,20,6,18}1:直接插入排序:它的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,原创 2018-01-06 21:53:23 · 16890 阅读 · 1 评论 -
wustoj (创建一棵哈夫曼树)
问题描述:老康维修牧场的一段栅栏需要N(1≤N≤200)根木头,每根木头的长度为整数Li(1≤N≤50).于是他购买了一根非常长的能锯成N段的木头(即该木头的长度是所有Li的总和)。忽略锯木头的时候产生的锯末而造成的长度损耗。老康自己没有锯子,需要想邻居老王借锯子。邻居老王是一个非常抠的人,他需要向老康收取锯子的损耗费(不清楚他怎么想出来的)。每锯一次的费用与所锯木头的长度成正比(假定原创 2017-11-30 23:27:28 · 1088 阅读 · 0 评论 -
wustoj(医院设置)
问题描述:一颗二叉树有n(1≤n≤50)个结点,分别编号为1到n,每个结点代表一个居民点,每个居民点都有一定数量的居民(≤100)。现在需要选择一个居民点建一家医院,使得所有居民走的路程之和最小。同时约定,相邻两节点之间的距离为1。例如对于样例,有5个居民点,每个居民点的居民数量分别为13,4,12,20,40.如果选择居民点1作为医院位置的话,则距离和为4*1+13*0+12*1+2原创 2017-11-19 11:13:20 · 761 阅读 · 0 评论 -
wustoj(二叉树的非递归遍历方法)
问题描述:包含多组测试数据。每组测试数据一行,给出二叉树的先序遍历序列(至少1个结点)输出二叉树的先序,中序和后序遍历结果。^表示空节点ABC^^DE^G^^F^^^A^^AB^^C^^ABCDEGFCBEGDFACGEFDBAAAAABCBACBCA题目分析:很简单的一道二叉树遍历,递归遍历的方法很简单,这里就不说了!这原创 2017-11-04 20:07:35 · 1183 阅读 · 0 评论 -
wustoj(寻找根节点和孩子)
问题描述:给定一棵树(结点数大于1小于1000),输出树的根root,孩子最多的结点以及他的孩子。如果存在多个答案,请输出所有的答案。Input包含多组测试数据。每组测试数据第一行包括1个整数n(结点数,编号从1到n)。接下来n-1行,每行2个整数x y,表示结点y是结点x的孩子。Output第一行输出树根root和孩子最多的结点数max。第二行输出孩子最多的结点以及其原创 2017-11-18 23:03:48 · 976 阅读 · 0 评论 -
wustoj(二叉树根节点到指定结点的路径-非递归算法)
问题描述:二叉树采用二叉链表存储结构进行存储,需要输出从二叉树的树根到指定结点的完整路径。按照给出的先序序列根据教材中算法6.4所示的算法建立二叉链表。二叉树中每个结点的数据都不相同。Input包含多组测试数据。每组测试数据的第一行给出二叉树的先序遍历序列(结点数至少1个,不超过100个),用于建立二叉链表存储的二叉树。第二行一个整数m,表示有m个结点需要输出从原创 2017-11-18 11:47:24 · 3210 阅读 · 0 评论 -
wustoj(二叉树的繁荣度)
问题描述:(1)根据教材中算法6.4所示的算法,按照给出的先序序列建立二叉链表表示的二叉树(结点数不超过26)。(2)计算该二叉树的繁茂程度。一颗二叉树的繁茂程度为二叉树的宽度与高度的乘积,二叉树的宽度为各层节点数的最大值。Input包含多组测试数据。每组测试数据一行,给出二叉树的先序遍历序列(至少1个结点)Output输出二叉树的繁茂程度。AB原创 2017-11-12 14:35:07 · 1131 阅读 · 0 评论 -
JavaScript -- 搜索引擎的关键字提示功能(字典树)
如上图,类似Google,百度这样的搜索引擎的关键字提示功能,你知道是怎么实现的吗?虽然它们可能实现的比较复杂,考虑到情况比较多,但是归根结底就是一种数据结构Trie树,又称字典树。首先我们先大体认识一下,知道它是一棵树。如下图:现在当然看不出什么东西,最直观的感觉就是一棵多叉树而已,那么上面那棵树是如何形成的了?这是输入hello hi her how see so这些单...原创 2019-04-14 15:51:35 · 1466 阅读 · 0 评论