![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 59
韩小妹
回想一下自己以前所付出的努力,瞬间自信心爆棚
展开
-
括号配对问题
题目描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Y...原创 2018-08-04 11:06:22 · 141 阅读 · 0 评论 -
The order of a Tree (二叉搜索树+先序遍历)
As we know,the shape of a binary search tree is greatly related to the order of keys we insert. To be precisely: 1. insert a key k to a empty tree, then the tree become a tree with only one node; ...原创 2018-08-07 21:03:54 · 1966 阅读 · 0 评论 -
进击的二叉查找树
题目描述给定1~N的两个排列,使用这两个排列分别构建两棵二叉查找树(也就是通过往一棵空树中依次插入序列元素的构建方式)。如果这两棵二叉查找树完全相同,那么输出YES;否则输出NO。之后,输出第一个排列对应的二叉查找树的后序序列、层序序列。输入每个输入文件中一组数据。第一行1个正整数N(1<=N<=30),表示二叉查找树中的结点个数。接下来两行,代表1~N的两个排列。...原创 2018-08-06 21:19:06 · 171 阅读 · 0 评论 -
NOIP2011普及组第3题 瑞士轮
题目描述2*N名编号为1~2N的选手共进行R轮比赛。每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名。选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。 每轮比赛的对阵安排与该轮比赛开始前的排名有关:第1名和第2名、第3名和第4名、……、第2K-1名和第2K名、……、第2N-1名和第2N名,各进行 一场比赛。每...原创 2018-08-06 19:51:12 · 1251 阅读 · 0 评论 -
士兵杀敌(三)
题目描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号士兵中,杀敌数最高的人与杀敌数最低的人之间军功差值是多少。现在,请你写一个程序,帮小工回答南将军每次的询问吧。...原创 2018-08-06 17:17:19 · 119 阅读 · 0 评论 -
RMQ(ST算法)
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列a,回答若干询问RMQ(A,i,j)(i, j<=n),返回数列a中下标在i,j之间的最小/大值。如果只有一次询问,那样只有一遍for就可以搞定,但是如果有许多次询问就无法在很快的时间处理出来。在这里介绍一个在线算法。所谓在线算法,是指用户每输入一个查询便马上处理一个查...原创 2018-08-06 11:22:15 · 175 阅读 · 0 评论 -
士兵杀敌(二)
题目描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条...原创 2018-08-06 10:52:03 · 113 阅读 · 0 评论 -
士兵杀敌(一)
题目描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示南将军询问的次数(1<M<100000)随后的一行是N...原创 2018-08-06 10:48:34 · 130 阅读 · 0 评论 -
Binary String Matching-KMP算法
题目描述Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ whi...原创 2018-08-05 21:16:26 · 126 阅读 · 0 评论 -
汉诺塔(三)
题目描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将...原创 2018-08-05 19:48:19 · 137 阅读 · 0 评论 -
堆栈的使用
题目描述堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。输入对于每组测试数据,第一行是一个正整数 n,0<n<=10000(n=0 结束)。而后的 n 行,每行的第一个字符可能是'P’或者'O’或者'A’;如果是'P’,后面还会跟着一个整数,表示把这个数据...原创 2018-08-05 15:31:41 · 860 阅读 · 0 评论 -
重建二叉树
题目描述题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。输入输入有多组数据(少于100组),以文件结尾结束。 每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。输出每组输出数据单独占一行,输出对应得先序序列。样例输入ACBFGED ABCDEFGCDAB CBA...原创 2018-08-05 15:27:45 · 121 阅读 · 0 评论 -
数组排序
题目描述输入一个数组的值,求出各个值从小到大排序后的次序。输入输入有多组数据。每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。输出各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。样例输入168 151 70 25 79 59 63 65 6 46 82 28 62 92 96 43 ...原创 2018-08-05 09:51:58 · 901 阅读 · 0 评论 -
重建二叉树——给出中序和后序 输出先序
题目描述题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。输入输入有多组数据(少于100组),以文件结尾结束。 每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。输出每组输出数据单独占一行,输出对应得先序序列。样例输入ACBFGED ABCDEFGCDAB CBA...原创 2018-08-04 20:44:40 · 1696 阅读 · 0 评论 -
二叉链表存储的二叉树
题目描述树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。对于每一个结点至多只有两课子树的一类树,称其为二叉树。二叉树的链式存储结构是一类重要的数据结构,其形式定义如下:而二叉树的前序、中序遍历是非常重要的能够访问二叉树所有结点的算法,下面分别列出一种先序遍历和两种中序遍历的算法。第一种中序遍历的方法(算法6.3):第二种中序遍历的方法(算法6.2):...原创 2018-08-04 19:00:29 · 6506 阅读 · 0 评论 -
大鱼小鱼问题——游啊游(栈)
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。 第2 - N + 1行:每行两个数Aii, Bii,中间用空格分隔,分别表示鱼的...原创 2018-08-08 09:57:10 · 444 阅读 · 0 评论