自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 题目 1709: 数据结构-Floyd(弗洛伊德)最短路径算法

对于第i行的第j个整数,如果大于0,则表示第i个顶点有指向第j个顶点的有向边,且权值为对应的整数值;共有n行,每行有n个整数,表示源点至每一个顶点的最短路径长度。在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出每一对顶点间的最短路径长度。解决这个问题的一个方法是执行n次迪杰斯特拉算法,这样就可以求出每一对顶点间的最短路径,执行的时间复杂度为O(n3)。在带权有向图G中,求G中的任意一对顶点间的最短路径问题,也是十分常见的一种问题。

2022-12-10 19:27:32 456 1

原创 题目 1708: 数据结构-Dijskra(迪杰斯特拉)最短路径算法

对于第i行的第j个整数,如果大于0,则表示第i个顶点有指向第j个顶点的有向边,且权值为对应的整数值;在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出源点至每一个其它顶点的最短路径长度。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。输入的第一行包含2个正整数n和s,表示图中共有n个顶点,且源点为s。

2022-12-10 19:22:43 284

原创 C语言 题目 1701: 数据结构-自顶向下的赫夫曼编码

在本题中,我们将要讨论的是自顶向下的赫夫曼编码算法。从根出发,遍历整棵赫夫曼树从而求得各个叶子结点所表示的字符串。感觉还是自底向上简单,搜了搜答案貌似看懂了,自己手打了一遍,写了注释,希望对你有帮助(^∀^●)ノシ。在本题中,读入n个字符所对应的权值,生成赫夫曼编码,并依次输出计算出的每一个赫夫曼编码。输入的第一行包含一个正整数n,表示共有n个字符需要编码。其中n不超过100。第二行中有n个用空格隔开的正整数,分别表示n个字符的权值。共n行,每行一个字符串,表示对应字符的赫夫曼编码。

2022-11-19 20:54:37 460

原创 C语言 题目 1700: 数据结构-自底向上的赫夫曼编码

在实际应用中,由于总是希望被传送的内容总长尽可能的短,如果对每个字符设计长度不等的编码,且让内容中出现次数较多的字符采用尽可能短的编码,则整个内容的总长便可以减少。另外,需要保证任何一个字符的编码都不是另一个字符的编码前缀,这种编码成为前缀编码。查了好久信息,五花八门,这一题需要注意筛选出两个权值最小的结点后,将位序最小的放在左子树上,位序次小的放在右子树上。在本题中,读入n个字符所对应的权值,生成赫夫曼编码,并依次输出计算出的每一个赫夫曼编码。输入的第一行包含一个正整数n,表示共有n个字符需要编码。

2022-11-19 18:45:37 319

原创 C语言 题目 1698: 数据结构-线索二叉树

在遍历二叉树的过程中,是按照一定的规则将二叉树中的结点排列成一个线性序列,从而得到二叉树中结点的先序序列或中序序列或后序序列。但是,当以二叉链表作为存储结构时,只能找到结点的左右孩子信息,而不能直接得到结点在任意一个序列中的前驱和后继的信息,而这种信息只有在遍历的动态过程中才能够得到。本题中,将会给出一个按照先序遍历得出的字符串,空格代表空的子节点,大写字母代表节点内容。请通过这个字符串建立二叉树,并按照题目描述中算法,中序遍历二叉树并中序线索化二叉树,之后中序遍历输出二叉线索树。请注意行尾输出换行。

2022-11-17 21:21:07 107

原创 C语言 题目 1760: 字符序列模式识别

注意判断条件,我原本意为那个小写字母是 用户输入必须要做的......(っ °Д °;)っ。

2022-11-14 21:48:47 163

原创 C语言 题目 1749: 字符排序

任意输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。输入第一行为样例数m,接下来m行每行一个字符串,字符串长度不超过20。输出m行表示排序完的字符串。

2022-11-14 21:45:54 827

原创 C语言 题目 1728: 字符串的查找删除

这一题写麻烦了,不过挺综合的,练习了字符串相关算法。

2022-11-14 19:09:13 321

原创 C语言 题目 1727: 首字母大写

注意题目中的样例,标点符号后面有一个空格!!!

2022-11-14 17:12:35 218

原创 C语言 题目 1726: 字符串的反码

注意对!的处理。

2022-11-14 16:33:39 249

原创 C语言 题目 1725: 统计字符

这真的是编号为1725的题???

2022-11-13 20:40:19 298

原创 C语言 题目 1724: 后缀子串排序

注意数组大小和malloc分配的内存一定要大!!!!否则会显示运行错误50!!!注意数组大小和malloc分配的内存一定要大!!!!否则会显示运行错误50!!!

2022-11-13 18:54:57 197

原创 dotcpp 题目 1722: 字符串连接

注意主函数要free,否则会显示运行错误50。

2022-11-13 17:05:24 66

原创 C语言 题目 1691: 数据结构-KMP字符串模式匹配算法实现

KMP算法是字符串模式匹配算法中较为高效的算法之一,其在某次子串匹配母串失败时并未回溯母串的指针而是将子串的指针移动到相应的位置。严蔚敏老师的书中详细描述了KMP算法,同时前面的例子中也描述了子串移动位置的数组实现的算法。前面你已经实现了子串移动的数组,现在就来利用该数组来实现KMP模式匹配。3组字符串,每组字符串占一行。每行包含由空格分隔的两个字符串,字符串仅由英文小写字母组成且长度不大于100。每组数据输出1行,输出后一个字符串在前一个字符串中的位置,如果不匹配,则输出0。

2022-11-12 22:26:54 91

原创 kmp算法及其优化

【代码】谈一谈自己对kmp算法及其优化的理解。

2022-11-12 19:05:45 70

原创 C语言 题目 1689: 数据结构-求子串位置的定位函数

算法的基本思想是:从主串S的第pos个字符起和模式的第一个字符比较之,若相等,则继续逐个比较后续字符,否则从主串的下一个字符起再重新和模式的字符比较之。依次类推,直至模式T中的每个字符依次和主串S中的一个连续的字符序列相等,则称匹配成功,函数值为和模式T中第一个字符相等的字符在主串中的序号,否则称匹配不成功,函数值为零。每组数据输出2行,第一行是S中每次比较的字符,第二行是后一个字符串在前一个字符串中的位置,如果不匹配,则输出0。你的任务是将S中每次比较的字符输出来,并将匹配的序号输出。

2022-11-12 17:28:24 998

原创 C语言 题目 1688: 数据结构-字符串插入

看下图的代码块理清思路

2022-11-11 21:50:36 284

原创 C实现 题目 1209: 密码截获

Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码 进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。因为截获的串太长了,而且存在多种可能的情况 (abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的 有效密码串吗?测试数据有若干行字符串,包括字母,数字,符号。与输入相对应每一行输出一个整数,代表最长有效密码串的长度。

2022-11-10 20:59:07 195

原创 题目 1685: 数据结构-银行排队

这道题可以自己先在草稿纸上推演一遍,我觉得题中的那个“如果有多个窗口空闲的时间一样长,则选择序号小的窗口办理业务” 这个条件用不用都可以(^∀^●)ノシ。

2022-11-01 21:55:36 107

原创 C语言顺序栈实现 题目 1684: 数据结构-n阶Hanoi塔问题

这道题的思路是自己摸索出来的,过程是比较简单的,判断条件也比较简单有大量重复语句(还是比较好理解的吧。。。。),不过每个判断块之内的if并列关系要搞清楚,我还是有点笨的,这个判断关系试了好几次,主要是我摸索出来那个方法后太激动了,没有再多考虑就开始写了>﹏<>﹏<写了注释,希望对你有帮助。

2022-10-30 22:12:33 314

原创 C语言网 题目 1683: 数据结构-表达式求值

C语言顺序表实现表达式求值,我很笨,这一题写了半天,理了好久的思路,目前想到的就是使用大量的条件判断语句来实现(┬┬﹏┬┬)(┬┬﹏┬┬)(┬┬﹏┬┬)题目描述算数四则运算的规则是1)先乘除,后加减;2)从左算到右;3)先括号内,后括号外。由此,算式4+2*3-10/5的计算顺序为4+2*3-10/5=4+6-10/5=4+6-2=8。给定一个以“#”作为结束符的算式,求出算式的结果。给出严蔚敏《数据结构(C语言)》中的一段算法描述以作参考:图1:表达式求值算法图2:表达式求值算法(续)

2022-10-26 17:41:46 683

原创 题目 1681: 数据结构-行编辑程序 C语言实现

一个简单的行编辑程序的功能是:接收用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接收一个字符即存入用户数据区”的做法显然不是很恰当。较好的做法是,设立一个输入缓冲区,用以接收用户输入的一行字符,然后逐行存入用户数据区。例如,当用户发现刚刚键入的一个字符是错的时,可补进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内错误较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。经过行编辑程序处理过后的输出。

2022-10-24 20:50:03 936

原创 题目 1680: 数据结构-八进制数

将十进制数转换为八进制,并输出。图:将十进制数转换为八进制并输出。输入包含若干十进制正整数。

2022-10-24 16:18:50 254

原创 题目 1770: [编程入门]链表之报数问题

有n个人围成一圈,顺序从1开始排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。要求用循环链表实现。只有一个正整数n,保证n不超过1000。输出最后留下的人的原始编号。请注意行尾输出换行。

2022-10-23 17:51:34 209

原创 题目 1739: 成绩排序

C语言 题目 1739: 成绩排序

2022-10-22 17:25:59 318

原创 题目 1679: 数据结构-一元多项式加法

dotcpp上的一道题,求高人指点,我写的代码一直显示错误0,可是我能想到的测试案例都想了,结果还是不行,求指点>﹏<>﹏<>﹏<

2022-10-21 16:56:05 262

原创 题目 2024: 链表删除练习

试图编写一个链表,实现插入后,试着编写一下删除操作。(这种使用数组的方式可能会浪费内存,但是请暂时忽略这点)作为练习的判断,请输出删除链表内所有元素x后的序列。数组保证删除后仍不为空。第一行包括一个数字n(n

2022-10-20 21:26:31 89

原创 题目 1771: [编程入门]链表之节点删除

第一行有两个用空格隔开的整数n和m,分别表示a和b两个链表中的节点个数。a和b两个链表中的节点并不一定按照学号顺序排列。保证a链表中学号各不相同,b链表中学号各不相同。有两个链表a和b,设节点中包含学号、成绩。从a链表中删去b链表中有相同学号的那些节点。在接下来的k行,每行输出两个用空格隔开的整数,分别表示一个学生的学号和成绩。之后的n行每行有两个用空格隔开的整数,分别表示一个学生的学号和成绩。最后的m行每行有两个用空格隔开的整数,分别表示一个学生的学号和成绩。首先输出a链表最终剩下的节点个数k。

2022-10-20 21:06:17 62

原创 题目 1678: 数据结构-双向循环链表

第一个整数如果是0,则表示输出双向链表中的所有元素;第一个整数如果是1,表示插入1个整数,其后跟2个整数i、e代表在第i个位置插入e;第一个整数如果是2,表示删除1个整数,其后跟1个整数i,表示删除的位置为i。双向链表是在结点中既保存了后一个结点指针又保存了前一个结点指针的链表。下面给出双向链表的定义、插入以及删除算法描述。双向链表在插入与删除时一定要注意其操作步骤的顺序。下面给出双向链表在插入与删除时的图示。当需要输出双向链表中的所有元素时输出,每次输出一行。图3:双向链表插入与删除的图示。

2022-10-20 17:25:35 263 1

原创 题目 1675: 数据结构-Big Bang

为了满足她的好奇心,我当回编剧让她意外知道了Sheldon的那个小本本放在了哪里。show将列表中的姓名全部输出,search只输出找到该名字的序号(从1开始)。Sheldon有一个神秘的小本本,记录了所有他从小开始讨厌的人名。Stuart这位漫画店老板就是小本本的一员哦,谁叫他常常毫不客气地挤兑Sheldon,曾多次赌赢过Sheldon呢。name是一个姓名,只包含英文字母的大小写,每个名字不超过30个字符。输入保证不会插入列表中已经存在的姓名,不会删除列表中不存在的姓名,也不会搜索列表中不存在的姓名。

2022-10-19 16:51:39 132

原创 题目 1674: 数据结构-有序线性表的有序合并

从上述问题要求可知,LC中的数据元素或是LA中的数据元素,或是LB中的数据元素,则只要先设LC为空表,然后将LA或LB中的元素逐个插入到LC中即可。为使LC中元素按值非递减有序排列,可设两个指针 i 和 j 分别指向LA和LB中某个元素,若设 i 当前所指的元素为 a,j 所指的元素为 b,则当前应插入到 LC 中的元素 c 为 c = a < b?第二行是集合B,第一个整数n(0

2022-10-16 18:51:54 424

原创 题目 1673: 数据结构-集合union

假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B。第一行是集合A,第一个整数m(0

2022-10-16 16:32:10 286

原创 题目 1676: 数据结构-链表的基本操作

如果是“show”则输出列表中的所有元素,如果列表是空的,则输出“Link list is empty”。每行有一个字符串,字符串是“get”,“insert”,“delete”,“show”中的一种。如果是“get”或者“delete”,则其后跟着一个整数a,代表获得或者删除第a个元素;输入数据只有一组,第一行有n+1个整数,第一个整数是这行余下的整数数目n,后面是n个整数。这一行整数是用来初始化列表的,并且输入的顺序与列表中的顺序相反,也就是说如果列表中是1、2、3那么输入的顺序是3、2、1。

2022-10-15 20:56:14 115

原创 题目 1052: [编程入门]链表合并

第一行,a、b两个链表元素的数量N、M,用空格隔开。接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成。已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。按照学号升序排列的数据。

2022-10-13 19:35:49 144

原创 团体程序设计天梯赛 L1-071 前世档案 (20 分) java

网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。输入格式:输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。随后M行,...

2022-04-20 11:07:37 112

原创 团体程序设计天梯赛-练习集 L1-056 猜数字 (20 分) java

用Scanner最后一个测试点会超时,所以采用bufferedreader类获取输入一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(≤104)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。输入样例:7Bob

2022-04-13 10:41:01 167

原创 团体程序设计天梯赛-练习集 L1-046 整除光棍 (20 分)

这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如..

2022-04-10 23:23:56 125

原创 团体程序设计天梯赛-练习集 L1-043 阅览室 (20 分) java

天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。输入格式:输入在第

2022-04-06 23:27:23 168

原创 团体程序设计天梯赛-练习集 L1-039 古风排版 (20 分)

中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsi ce simport java.util.*;import java.

2022-04-06 10:45:43 64

原创 团体程序设计天梯赛 L1-027 出租 (20 分)

题不难理清思路就可以了,没有用任何方法,想用方法可以自行替换代码。下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容

2022-03-22 20:14:38 51

空空如也

空空如也

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

TA关注的人

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