学校OJ
奔跑的星黛露
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算2支股票的M天运动平均价格
题目描述给定2支股票的开盘价和收盘价的N天历史数据,要求按开盘和收盘,分别计算每支股票的每个日期对应的M天移动平均价格。假定两个股票数据如下:日期 开盘/收盘 第1支股票价格S1 第2支股票价格S22004/7/29 close 6 42004/7/25 close 2 62004/7/26 open 8 122004/7/30 open 2 42004/7/27 close 8 102004/7/28 open 4 2...原创 2021-12-27 16:31:54 · 1170 阅读 · 0 评论 -
DS图—图的最短路径(不含代码框架)
题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出对每组测试数据,输出:每行输出v0到某个顶点的最短距离和最短路径每行格式:v0编号-其他顶点编号-最短路径值-原创 2021-12-27 16:32:23 · 316 阅读 · 0 评论 -
DS图—最小生成树
题目描述根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。)输入顶点数nn个顶点边数mm条边信息,格式为:顶点1顶点2权值Prim算法的起点v输出输出最小生成树的权值之和对两种算法,按树的生长顺序,输出边信息(Kruskal中边顶点按数组序号升序输出)样例输入6v1 v2 v3 v4 v5 v6 10v1 v2 6v1 v3 1v1 v4 5v2 v3 5v2 v5 3v3 v4 5.原创 2021-12-27 16:32:42 · 624 阅读 · 0 评论 -
DS二叉树—二叉树结点的最大距离
题目描述二叉树两个结点的距离是一个结点经过双亲结点,祖先结点等中间结点到达另一个结点经过的分支数。二叉树结点的最大距离是所有结点间距离的最大值。例如,下图所示二叉树结点最大距离是3,C和D的距离。二叉树用先序遍历顺序创建,#表示空树。计算二叉树结点最大距离和最大距离的两个结点(假设二叉树中取最大距离的两个结点唯一)。输入测试次数T第2行之后的T行,每行为一棵二叉树先序遍历结果(#表示空树)输出对每棵二叉树,输出树的结点最大距离和最大距离的结点,输出格式见样例。样例输.原创 2021-12-27 16:32:58 · 1216 阅读 · 0 评论 -
DS二叉树--后序遍历非递归算法
题目描述求一颗树的后序遍历的非递归算法要求:必须是非递归算法,使用堆栈对象来实现建树方法采用“先序遍历+空树用0表示”的方法算法流程:输入第一行输入一个整数t,表示有t个测试数据第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行输出逐行输出每个二叉树的后序遍历结果样例输入3AB0C00D00ABC00D00EF000ABCD0000E0F00样例输出CBDACDBFEADCBFEA代码#include "bi.原创 2021-12-27 16:33:11 · 1132 阅读 · 0 评论 -
DS树--二叉树之最大路径
DS树--二叉树之最大路径原创 2021-12-27 16:33:21 · 621 阅读 · 0 评论 -
子串循环问题 (Ver. I)
题目描述给定一个字符串,求需要添加至少几个字符到字符串末尾才能使得整个字符串串由某一个不为本身的子串循环构成?如"abca",添加"bc"后构成"abcabc",其由子串"abc"循环构成;也可以添加"abca"后构成"abcaabca",其由子串"abca"循环构成,相比之下"bc"只有2个字符,添加的字符量最少。输入第一行包括一个整数T(1 <= T <= 100),代表测试组数每组测试数据包括一行字符串,其长度范围为 [3, 10^4]输出对于每组测试数据输出原创 2021-12-27 16:33:33 · 248 阅读 · 0 评论 -
DS串应用—最长重复子串
题目描述求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。输入测试次数tt个测试串输出对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.样例输入3abcaefabcabcszu0123szuszuabcefg样例输出43-1代码#include "iostream"#include "string"#include "cstdio"using namespace ..原创 2021-12-27 16:33:42 · 559 阅读 · 0 评论 -
DS图—图的最短路径(不含代码框架)
题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出对每组测试数据,输出:每行输出v0到某个顶点的最短距离和最短路径每行格式:v0编号-其他顶点编号-最短路径值-原创 2021-12-27 16:33:49 · 264 阅读 · 0 评论 -
DS内排—2-路归并排序
题目描述输入一组字符串,用2-路归并排序按字典顺序进行降序排序。输入测试次数t每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。输出对每组测试数据,输出2-路归并排序的每一趟排序结果。每组测试数据的输出之间有1空行。样例输入26 shenzhen beijing guangzhou futian nanshan baoan10 apple pear peach grape cherry dew fig haw lemon marc样例输出shenz..原创 2021-12-27 16:33:58 · 749 阅读 · 0 评论 -
基数排序(内部排序)
题目描述给定一组数据,对其进行基数升序排序。输入测试次数t每组测试数据一行:数字个数n,后跟n个数字(整数)注:如果序列中有负数,则每个数字加上最小负数的绝对值,使序列中的数均大于等于0。排序后再减去最小负数的绝对值。输出对每组测试数据,输出每趟分配、收集的结果。若分配中该位没有数字,输出NULL。具体输出格式见样例。每组测试数据间以空行分隔。如果序列中有负数,最后输出减去最小负数绝对值的序列值。样例输入210 278 109 63 930 589 ..原创 2021-12-28 14:36:29 · 559 阅读 · 0 评论 -
DS内排—堆排序
题目描述给定一组数据,使用堆排序完成数据的降序排序。(建小顶堆)。输入数据个数n,n个整数数据输出初始创建的小顶堆序列每趟交换、筛选后的数据序列,输出格式见样例样例输入8 34 23 677 2 1 453 3 7样例输出8 1 2 3 7 23 453 677 348 2 7 3 34 23 453 677 18 3 7 453 34 23 677 2 18 7 23 453 34 677 3 2 18 23 34 453 677 7 3 2 ..原创 2021-12-26 21:36:50 · 190 阅读 · 0 评论 -
DS排序--快速排序
题目描述给出一个数据序列,使用快速排序算法进行从小到大的排序--程序要求--若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推输出每组测试数据,输出每趟快排的结果,即每次排好一个数字原创 2021-12-26 21:35:25 · 537 阅读 · 0 评论 -
DS二叉树——二叉树之父子结点
题目描述给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构。编写程序输出该树的所有叶子结点和它们的父亲结点输入第一行输入一个整数t,表示有t个二叉树第二行起,按照题目表示的输入方法,输入每个二叉树的先序遍历,连续输入t行输出第一行按先序遍历,输出第1个示例的叶子节点第二行输出第1个示例中与叶子相对应的父亲节点以此类推输出其它示例的结果样例输入3AB0C00D00AB00..原创 2021-12-26 21:27:12 · 535 阅读 · 0 评论 -
AG. DS二叉树--层次遍历
题目描述层次遍历二叉树,是从根结点开始遍历,按层次次序“自上而下,从左至右”访问树中的各结点。建树方法采用“先序遍历+空树用0表示”的方法要求:采用队列对象实现,函数框架如下:输入第一行输入一个整数t,表示有t个测试数据第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行输出逐行输出每个二叉树的层次遍历结果样例输入2AB0C00D00ABCD00E000FG00H0I00样例输出ABDCABFCGHDEI代码#incl原创 2021-12-26 21:25:52 · 450 阅读 · 0 评论 -
串应用- 计算一个串的最长的真前后缀
题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的“最长的真前后缀”。试实现一个函数string matched_Prefix_Postfix(string str),得到输入串str的最长的真前后缀。若不存在最长的真前后缀则输出empty输入第1行:串的个数 n第2行到第n+1行:n个字符串原创 2021-12-26 21:22:32 · 469 阅读 · 0 评论 -
DS堆栈--迷宫求解
题目描述给出一个N*N的迷宫矩阵示意图,从起点[0,0]出发,寻找路径到达终点[N-1, N-1]要求使用堆栈对象来实现,具体算法参考课本3.2.4节51页输入第一行输入t,表示有t个迷宫第二行输入n,表示第一个迷宫有n行n列第三行起,输入迷宫每一行的每个方格的状态,0表示可通过,1表示不可通过输入n行以此类推输入下一个迷宫输出逐个输出迷宫的路径如果迷宫不存在路径,则输出no path并回车如果迷宫存在路径,将路径中每个方格的x和y坐标输出,从起点到终点原创 2021-12-26 21:20:38 · 843 阅读 · 2 评论 -
DS栈--Web导航
题目描述标准Web浏览器包含在最近访问过的页面之间前后移动的功能。 实现这些功能的一种方法是使用两个堆栈来跟踪可以通过前后移动到达的页面。 在此问题中,系统会要求您实现此功能。需要支持以下命令:BACK:将当前页面推到前向堆栈的顶部。 从后向堆栈的顶部弹出页面,使其成为新的当前页面。 如果后向堆栈为空,则忽略该命令。FORWARD:将当前页面推到后向堆栈的顶部。 从前向堆栈的顶部弹出页面,使其成为新的当前页面。 如果前向堆栈为空,则忽略该命令。访问:将当前页面推送到后向堆栈的顶部,并将URL指定原创 2021-12-26 21:18:37 · 539 阅读 · 0 评论 -
DS链表—学生宿舍管理
题目描述假设某校有20间宿舍,宿舍编号101,102,...,120。每间只住一名学生。初始部分宿舍已用。用两个链表(已用宿舍链表和可用宿舍链表)维护宿舍的管理,实现宿舍分配、宿舍交回。约定已用宿舍链表按宿舍号升序链接。初始可用宿舍链表也按宿舍号升序链接。宿舍分配从可用宿舍链表中摘取第一间宿舍分配给学生。学生交回的宿舍挂在可用宿舍链表最后。备注:使用list容器或静态链表。不用考虑宿舍分配和交回不成功的情况。输入初始宿舍状态,第一行输入n,表示已用宿舍n间后跟n行数据,每行格式为原创 2021-12-26 21:13:28 · 447 阅读 · 0 评论 -
DS线性表—多项式相加
题目描述对于一元多项式p(x)=p0+p1x+p2x2+…+pnxn,每个项都有系数和指数两部分,例如p2x2的系数为p2,指数为2。编程实现两个多项式的相加。例如5+x+2x2+3x3,-5-x+6x2+4x4,两者相加结果:8x2+3x3+4x4其中系数5和-5都是x的0次方的系数,相加后为0,所以不显示。x的1次方同理不显示。要求用单链表实现。输入第1行:输入t表示有t组测试数据第2行:输入n表示有第1组的第1个多项式包含n个项第3行:输入第一项的系数和指数,以此类原创 2021-12-26 21:09:46 · 845 阅读 · 0 评论 -
DS单链表--结点交换
题目描述用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换交换函数定义可以参考:swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号swap (ListNode * p, ListNode * q) //p和q表示指向两个结点的指针输入第1行先输入n表示有n个数据,接着输入n个数据第2行输入要交换的两个结点位置第3行输入要交换的两个结点位置输...原创 2021-12-26 21:06:42 · 946 阅读 · 0 评论 -
DS哈希查找--Trie树
题目描述Trie树又称单词查找树,是一种树形结构,如下图所示。它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。输入的一组单词,创建Trie树。输入字符串,计算以该字符串为公共前缀的单词数。(提示:树结点有26个指针,指向单词的下一字母结点。)输入测试数据有多组每组测试数据格式为:第一行:一行单原创 2021-12-25 16:45:01 · 439 阅读 · 0 评论 -
DS串应用--KMP算法
题目描述学习KMP算法,给出主串和模式串,求模式串在主串的位置算法框架如下,仅供参考输入第一个输入t,表示有t个实例第二行输入第1个实例的主串,第三行输入第1个实例的模式串以此类推输出第一行输出第1个实例的模式串的next值第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0以此类推样例输入3qwertyuioptyuaabbccddcccaaaabababacabac样例输出-1 0原创 2021-12-25 12:07:26 · 578 阅读 · 0 评论 -
DS二叉树——Huffman编码与解码(不含代码框架)
题目描述1、问题描述给定n个字符及其对应的权值,构造Huffman树,并进行huffman编码和译(解)码。构造Huffman树时,要求左子树根的权值小于、等于右子树根的权值。进行Huffman编码时,假定Huffman树的左分支上编码为‘0’,右分支上编码为‘1’。2、算法构造Huffman树算法:⑴根据给定的n个权值(w1, w2, …, wn)构成n棵二叉树的集合F={T1, T2, …, Tn},其中每棵二叉树Ti中只有一个权值为wi的根结点。⑵在F中选取两棵根结点的原创 2021-12-25 11:37:16 · 491 阅读 · 0 评论 -
DS查找—二叉树平衡因子
题目描述二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。--程序要求--若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入测试次数t每组测试数据一行,原创 2021-12-25 09:57:11 · 546 阅读 · 0 评论 -
DS二叉排序树之删除
题目描述给出一个数据序列,建立二叉排序树,并实现删除功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要删除m个数据从第五行起,输入m行,每行一个要删除的数据,都是自然数以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出删除第m个数据后的有序序列,输出m行原创 2021-12-25 00:05:33 · 553 阅读 · 0 评论 -
E. DS堆栈--表达式计算【S】
题目描述计算一个表达式的运算结果使用C++自带stack堆栈对象来实现参考课本的算法伪代码P53-54例如1. Push (OPTR, '#');表示把字符#压入堆栈OPTR中,转换成c++代码就是OPTR.push('#');2. Pop(OPND, a); 表示弹出栈OPND的栈顶元素,并把栈顶元素放入变量a中。因此改成c++代码是两个操作:a = OPND.top(); OPND.pop();3. a = GetTop(OPND)表示获取栈OPND的栈顶元素,转成c.原创 2021-09-27 20:57:49 · 636 阅读 · 0 评论 -
附加题、组链表与通讯录(期末模拟)【S】
题目描述组链表是一种常用的数据结构,它由数组加链表组成,往往用于信息检索中。每个链表由n个链表结点组成,每个链表都有头结点,头结点不存放实际数据,纯粹作为一个索引。所有链表的头结点组成一个数组,即数组的每个元素都是一个链表头结点,它的后面延伸着一个链表。例如一个通讯录包含五个联系人,每个联系人都有姓名和电话,每个联系人都对应一个链表结点。Tom 8111Any 1222Ken 2333Kim 2444Tim 8222我们先创建一个数组包含26个链表头结点,对应26个大原创 2021-06-25 00:54:53 · 809 阅读 · 0 评论 -
成绩查询(指针运算)【S】
题目描述已知一组学生成绩,然后根据输入的序号查询成绩要求:1. 使用一个整数数组存储学生成绩,假设元素数是n。2. 使用一个指针指向数组中间元素,即n/2的位置。3. 使用++和--运算符,求出数组中间元素的前一个成绩和后一个成绩4. 输入一个序号,然后计算这个序号的元素和中间元素的距离,然后使用指针去访问例如有11个学生,指针指向中间的学生也就是第6个学生,若输入序号3,即查询第3个学生的成绩,第3和第6之间距离为3,那么指针应该怎么运算呢???如果有两个中间学生,则将后面原创 2021-04-26 19:53:48 · 739 阅读 · 0 评论 -
数字判断(指针为函数参数)
题目描述输入一个字符串,判断这个字符串是否一个完全整数值的字符串,例如输入"1234",那么表示整数1234,输入"12a3"就表示只是一个字符串,不是一个整数要求编写函数isNumber,参数是一个字符指针,返回值是整数类型如果字符串表示一个整数,则计算出这个整数并且返回如果字符串不是表示一个整数,则返回-1主函数必须调用isNumber来判断字符串,不能使用任何C++自带或第三方的类似函数输入输入t表示有t个测试实例每行输入一个字符串依次输入t行输出每行输出判原创 2021-04-26 19:05:05 · 221 阅读 · 0 评论 -
三数论大小(指针)
题目描述输入三个整数,然后按照从大到小的顺序输出数值。要求:用三个指针分别指向这三个整数,排序过程必须通过这三个指针来操作,不能直接访问这三个整数输出时,必须使用这三个指针,不能使用存储三个整数的变量输入第一行输入t表示有t个测试实例第二行起,每行输入三个整数输入t行输出每行按照从大到小的顺序输出每个实例在每行中,每个数据输出后都带有一个空格,即使该行最后一个数据输出后也要再输出一个空格示例输入132 4 688 99 77111 333 2.原创 2021-04-26 18:59:05 · 412 阅读 · 0 评论 -
购物车(复合类)【S】
购物车(复合类)题目描述定义一个商品类,包含私有数据成员:商品编号、名称、颜色、尺码、单价、数量。成员函数有:计算总价(单价*数量)、输出商品信息。具体输出格式见样例输出。构造函数及其它函数可根据题目需要自行添加。定义一个购物车类,包含私有数据成员:商品对象集合、商品总数、购物车所有商品总价。方法有:添加商品、删除商品、减少商品数量、增加商品数量,输出购物车中的商品清单。构造函数及其它函数可根据题目需要自行添加。编写主函数,定义上述类对象,根据样例的输入、输出实现购物车的简单模拟。.原创 2021-04-20 10:47:20 · 1030 阅读 · 0 评论
分享