线性表
文章平均质量分 65
线性表
向上的yyy
路漫漫其修远兮,吾将上下而求索
展开
-
蓝桥杯- 练一练「约瑟夫环」java
题目描述设有 nn 个人围坐在圆桌周围,现从某个位置 kk 上的人开始报数,报数到 mm 的人就站出来。下一个人,即原来的第 m+1m+1 个位置上的人,又从 11 开始报数,再报数到 mm 的人站出来。依次重复下去,直到全部的人都站出来为止。试设计一个程序求出这 nn 个人的出列顺序。ss要求一:采用循环链表解决。要求二:可以使用模拟法,模拟循环链表。要求三:可以不使用循环链表类的定义使用方式。输入描述输入只有一行且为用空格隔开的三个正整数 n,k,mn,k,m,其含义如上所述。输出描述原创 2022-02-25 14:02:58 · 541 阅读 · 0 评论 -
B.牛牛排队伍——模拟双链表
题目其实很简单,就是单链表的增删查,但是刚开始,直接vis标记删除元素,查找一个位置的前一个用的while不断向前找,但是TLE;毕竟O(n*k)的复杂度,一开始没有考虑时间复杂度,说明只能O(n)线性来解决,刚开始模拟单链表没用next后继,只用了前驱,有点bug,WA了好几下,后来浩提供的用next的思路才过了;原创 2023-01-06 21:03:42 · 234 阅读 · 0 评论 -
1203:扩号匹配问题 c++_栈
【题目描述】题目链接在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$“标注,不能匹配的右括号用”?"标注。【输入】输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。【输出】分析此题是栈的比较经典的应用,此题比较麻烦的地方在于,需要知原创 2022-03-03 20:57:57 · 1353 阅读 · 1 评论 -
P2234 [HNOI2002]营业额统计——set
Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger 拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况:当最小波动值越大时,就说明营业情况越不稳定。原创 2022-12-09 12:47:15 · 456 阅读 · 0 评论 -
P4387 【深基15.习9】验证栈序列——stack
给出两个序列 pushed 和 poped 两个序列,其取值从 1 到n(n≤100000)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出Yes,否则输出No。为了防止骗分,每个测试点有多组数据。原创 2022-12-09 10:53:58 · 297 阅读 · 0 评论 -
P1241 括号序列——stack
S[S](S)ABAB(),[],(()),([]),()[],()[()](,[,],)(,()),([()现在,给定一个仅由(,),[,]构成的字符串s配对结束后,对于s中全部未配对的括号,请你在其旁边添加一个字符,使得该括号和新加的括号匹配。原创 2022-12-09 10:06:36 · 340 阅读 · 0 评论 -
P2058 [NOIP2016 普及组] 海港——队列
NOIP2016 普及组 T3。原创 2022-12-08 20:25:51 · 262 阅读 · 0 评论 -
P1160 队列安排——list
一个学校里老师要将班上 NNN 个同学排成一列,同学被编号为 1∼N1\sim N1∼N,他采取如下的方法:先将 111 号同学安排进队列,这时队列中只有他一个人;2−N2-N2−N 号同学依次入列,编号为 iii 的同学入列方式为:老师指定编号为 iii 的同学站在编号为 1∼(i−1)1\sim(i-1)1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;从队列中去掉 M(M原创 2022-12-08 12:54:16 · 401 阅读 · 2 评论 -
7-58 修理牧场——优先队列
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。原创 2022-12-02 12:02:28 · 453 阅读 · 2 评论 -
7-39 最优合并问题——优先队列
给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。输入格式:第一行有 1 个正整数k,表示有 k个待合并序列。第二行有 k个正整数,表示 k个待合并序列的长度。输出格式:输出最多比较次数和最少比较次数。原创 2022-11-30 11:03:50 · 710 阅读 · 0 评论 -
1373:鱼塘钓鱼(fishing)——优先队列+贪心
【题目描述】有N个鱼塘排成一排(N原创 2022-08-31 12:34:01 · 330 阅读 · 0 评论 -
1372:小明的账单 优先队列、multiset
【题目描述】小明在一次聚会中,不慎遗失了自己的钱包,在接下来的日子,面对小明的将是一系列的补卡手续和堆积的账单… 在小明的百般恳求下,老板最终同意延缓账单的支付时间。可老板又提出,必须从目前还没有支付的所有账单中选出面额最大和最小的两张,并把他们付清。还没有支付的账单会被保留到下一天。请你帮他计算出支付的顺序。【输入】第1行:一个正整数N(N≤15,000),表示小明补办银联卡总共的天数。第2行到第N+1 行:每一行描述一天中收到的帐单。...原创 2022-08-30 19:57:07 · 455 阅读 · 0 评论 -
1371:看病——优先队列 自定义排序
【题目描述】有个朋友在医院工作,想请BSNY帮忙做个登记系统。具体是这样的,最近来医院看病的人越来越多了,因此很多人要排队,只有当空闲时放一批病人看病。但医院的排队不同其他排队,因为多数情况下,需要病情严重的人优先看病,所以希望BSNY设计系统时,以病情的严重情况作为优先级,判断接下来谁可以去看病。【输入】第一行输入n,表示有n个操作。对于每个操作,首先输入push或pop。push的情况,之后会输入ai 和 bi,分别表示患者姓名和患者病情优先级。pop后面没有输入,但需要你输出。...原创 2022-08-30 18:24:10 · 449 阅读 · 0 评论 -
1370:最小函数值(minval)——优先队列
【题目描述】有n个函数,分别为F1,F2,…,Fn。定义Fi(x)=Aix2+Bix+Ci(x∈N∗)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个)。【输入】第一行输入两个正整数n和m。以下n行每行三个正整数,其中第i行的三个数分别位Ai、Bi和Ci。输入数据保证Ai...原创 2022-08-30 17:36:27 · 367 阅读 · 0 评论 -
1369:合并果子(fruit)——优先队列
【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。...原创 2022-08-30 12:16:02 · 297 阅读 · 0 评论 -
641. 设计循环双端队列
设计实现双端队列。实现 MyCircularDeque 类:MyCircularDeque(int k) :构造函数,双端队列最大为 k。boolean insertFront():将一个元素添加到双端队列头部。如果操作成功返回 true ,否则返回 false。boolean insertLast() :将一个元素添加到双端队列尾部。如果操作成功返回 true ,否则返回 false。boolean deleteFront() :从双端队列头部删除一个元素。原创 2022-08-19 16:59:44 · 75 阅读 · 0 评论 -
1362:家庭问题(family)
题目描述】有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5)此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家庭,{6}单独为一个家庭,第一个家庭的人数为最多。【输入】第一行为n,k二个整数(1≤n≤100)(用空格分隔);...原创 2022-08-15 16:32:49 · 1036 阅读 · 0 评论 -
1361:产生数(Produce)
题目描述】给出一个整数n(n≤2000)和k个变换规则(k≤15)。规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零。例如:n=234,k=2规则为2 → 53 → 6上面的整数234经过变换后可能产生出的整数为(包括原数)234,534,264,564共4种不同的产生数。求经过任意次的变换(0次或多次),能产生出多少个不同的整数。仅要求输出不同整数个数。【输入】【输出】格式为一个整数(满足条件的整数个数)。【输入样例】23422 5。...原创 2022-08-15 14:48:43 · 618 阅读 · 0 评论 -
1360:奇怪的电梯(lift)
题目描述】大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)上有一个数字Ki(0≤=Ki≤=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有−2楼。那么,从A楼到B楼至少要按几次按钮呢?【输入】...原创 2022-08-14 12:54:11 · 1206 阅读 · 0 评论 -
1359:围成面积
题目描述】编程计算由“”号围成的下列图形的面积。面积计算方法是统计号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10×10的二维数组中,有“*”围住了15个点,因此面积为15。【输入】10×10的图形。【输出】输出面积。【输入样例】【输出样例】15。......原创 2022-08-13 21:11:36 · 493 阅读 · 0 评论 -
768. 最多能完成排序的块 II
这个问题和“最多能完成排序的块”相似,但给定数组中的元素可以重复,输入数组最大长度为2000,其中的元素最大为10**8。arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例 1:输入: arr = [5,4,3,2,1]输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。...原创 2022-08-13 12:57:45 · 76 阅读 · 0 评论 -
1282. 用户分组
有 n 个人被分成数量未知的组。每个人都被标记为一个从 0 到 n - 1 的唯一ID。给定一个整数数组 groupSizes ,其中 groupSizes[i] 是第 i 个人所在的组的大小。例如,如果 groupSizes[1] = 3 ,则第 1 个人必须位于大小为 3 的组中。返回一个组列表,使每个人 i 都在一个大小为 groupSizes[i] 的组中。每个人应该 恰好只 出现在 一个组 中,并且每个人必须在一个组中。如果有多个答案,返回其中 任何 一个。...原创 2022-08-12 21:47:40 · 146 阅读 · 0 评论 -
1334:【例2-3】围圈报数
题目描述】有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出列的顺序。【输入】n和m。【输出】出列的顺序。【输入样例】4 17【输出样例】1 3 4 2【提示】n≤100。...原创 2022-08-12 12:15:30 · 867 阅读 · 0 评论 -
1333:【例2-2】Blah数集
题目描述】大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下:(1)a是集合Ba的基,且a是Ba的第一个元素;(2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中;(3)没有其他元素在集合Ba中了。现在小高斯想知道如果将集合Ba中元素按照升序排列,第N个元素会是多少?【输入】输入包括很多行,每行输入包括两个数字,集合的基a(1≤a≤50))以及所求元素序号n(1≤n≤1000000)。【输出】对于每个输入,输出集合Ba的第n个元素值。...原创 2022-08-12 11:27:27 · 1011 阅读 · 0 评论 -
1332:【例2-1】周末舞会
题目描述】假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。【输入】第一行两队的人数;第二行舞曲的数目。【输出】配对情况。【输入样例】4 67【输出样例】1 12 23 34 41 52 63 1。...原创 2022-08-12 09:57:35 · 280 阅读 · 0 评论 -
L2-041 插松枝
人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。他们的工作流程(并不)是这样的:每人手边有一只小盒子,初始状态为空。每人面前有用不完的松枝干和一个推送器,每次推送一片随机型号的松针片。工人首先捡起一根空的松枝干,从小盒子里摸出最上面的一片松针 —— 如果小盒子是空的,就从推送器上取一片松针。将这片松针插到枝干的最下面。工人在插后面的松针时,需要保证,每一步插到一根非空松枝干上的松针片,不能比前一步插上的松针片大。如果小盒子中最上面的松针满足要求,就取之插好;...原创 2022-08-11 12:23:50 · 692 阅读 · 0 评论 -
1357:车厢调度(train)
题目描述】有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C。...原创 2022-08-11 08:51:33 · 628 阅读 · 0 评论 -
1358:中缀表达式值(expr)
题目描述】输入一个中缀表达式(由0-9组成的运算数、加+减-乘*除/四种运算符、左右小括号组成。注意“-”也可作为负数的标志,表达式以“@”作为结束符),判断表达式是否合法,如果不合法,请输出“NO”;否则请把表达式转换成后缀形式,再求出后缀表达式的值并输出。注意:必须用栈操作,不能直接输出表达式的值。【输入】一行为一个以@结束的字符串。【输出】如果表达式不合法,请输出“NO”,要求大写。如果表达式合法,请输出计算结果。【输入样例】1+2*8-9@【输出样例】8。...原创 2022-08-10 12:38:15 · 1067 阅读 · 1 评论 -
1356:计算(calc)
数据结构,后缀表达式求值,中缀表达式转化为后缀表达式原创 2022-08-10 11:33:48 · 1733 阅读 · 0 评论 -
1355:字符串匹配问题(strs)
题目描述】字符串中只含有括号 (),[],,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该输出NO。【输入】第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。【输出】在输出文件中有n行,每行都是YES或NO。【输入样例】5【输出样例】YESYESYESYES。...原创 2022-08-09 13:57:01 · 385 阅读 · 1 评论 -
1354:括弧匹配检验
题目描述】假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])],输出:OK。【输入】输入仅一行字符(字符个数小于255)。【输出】...原创 2022-08-09 10:43:48 · 148 阅读 · 0 评论 -
1353:表达式括号匹配(stack)
题目描述】假设一个表达式有英文字母(小写)、运算符(+,—,∗,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。【输入】一行数据,即表达式。【输出】一行,即“YES” 或“NO”。【输入样例】【输出样例】YES【提示】【样例输入2】(25+x)(a(a+b+b)@【样例输出2】NO。...原创 2022-08-09 10:18:19 · 360 阅读 · 0 评论 -
1331:【例1-2】后缀表达式的值
题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:栈中的变化情况:运行结果:-47提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在2^64范围内,如有除法保证能整除。【输入】一个后缀表达式。【输出】一个后缀表达式的值。...原创 2022-08-09 10:05:14 · 507 阅读 · 0 评论