
OJ
文章平均质量分 53
程序员萌芽
夜半荧屏映月华,
指尖飞舞写天涯。
代码千行凝智慧,
bug除尽见朝霞。
展开
-
求组合数的值(函数) python
要求将该表达式的计算写成函数combination(m,n),返回计算结果。阶乘计算写成函数fact(n),返回n!不可以使用Python内置包的数学函数。原创 2023-06-07 22:24:42 · 362 阅读 · 0 评论 -
求m到n之间的素数和(函数)python
输入两个正整数m和n(m原创 2023-06-07 22:16:15 · 2319 阅读 · 0 评论 -
最大公约数和最小公倍数----函数 python
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。最大公约数 最小公倍数。原创 2023-06-07 22:13:50 · 354 阅读 · 0 评论 -
素数判断 python
写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。判断次数和每次输入的任意整数。每次的输入是否为素数。原创 2023-06-07 21:59:33 · 355 阅读 · 0 评论 -
矩形内外(函数)python
点的坐标(x,y)用结构体来描述。矩形可以用对角线上的两个点来定义(左下角点和右上角点)。要求编写一个函数判断点是否在矩形内,如果在内则返回1,否则返回-1。主函数调用该判断函数,如果返回1则输出in,返回-1则输出out。已知矩形的左下角点为(1,1),右上角点为(5,5)。对于一个已知的矩形,判断输入的点是否包含在该矩形内。如果点在矩阵内,则点坐标不大于矩阵的坐标范围。输入点的个数和每个点的坐标。原创 2023-06-07 21:43:32 · 402 阅读 · 0 评论 -
分段函数 python
写一段程序,输入x,输出y。原创 2023-06-07 21:36:38 · 1047 阅读 · 0 评论 -
中后序遍历构建二叉树与应用I
因为叶子节点是没有左子树和右子树的节点,所以根据后序找出根节点,根据中序找出根节点的左右子树,这里使用递归,发现左右都是空的节点就是叶子节点,再用一个min变量找出最小的即可。对于每组测试数据,首先输入一个整数N (1原创 2023-02-18 15:09:14 · 906 阅读 · 0 评论 -
火车站 栈和队列
如果A列先进入铁路,然后B列在A列离开之前进入铁路,那么A列在B列离开之前不能离开。下图说明了问题所在。车站里最多有9列火车,所有的火车都有一个ID(编号从1到N),火车按照O1的顺序进入火车,火车是否可以按照O2的顺序驶出。如果可以,输出“Yes”,然后输出出入站顺序(对于进入铁路的列车,应输出“in”,对于出铁路的列车,应输出“out”)。入站序列判断首个元素是否和出站序列(存入队列)的首个元素相同,相同的话,队列出队首,不同的入栈,判断完序列后,开始判断栈和队列,如果栈顶和队首元素相同则弹栈和出队。原创 2023-02-18 14:48:53 · 712 阅读 · 0 评论 -
后序+中序输出先序遍历(树)
第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。原创 2023-02-18 13:40:09 · 224 阅读 · 0 评论 -
键盘坏了(DS线性结构)
测试数据有多组,每组包括一行字符串(长度原创 2023-02-18 13:36:50 · 331 阅读 · 0 评论 -
堆的后序遍历(DS排序)
只有一行,先输入n表示序列包含n个整数,接着输入n个整数。给定一个整数序列, 把它建成最小堆,输出堆的后序遍历。序列转变成最小堆后,输出堆的后序遍历。原创 2023-02-18 13:34:13 · 229 阅读 · 0 评论 -
拯救007
在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。随后 N 行,每行给出一条鳄鱼的 (x,y) 坐标。如果007有可能逃脱,就在一行中输出"Yes",否则输出"No"。原创 2023-02-17 16:37:02 · 223 阅读 · 0 评论 -
迪杰斯特拉算法 旅游规划
输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中间用空格分开,数字均为整数且不超过500。有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。在一行里输出路径的长度和收费总额,数字间以空格分隔,输出结尾不能有多余空格。原创 2023-02-17 16:35:12 · 293 阅读 · 0 评论 -
DS图—图的最短路径(无框架)迪杰斯特拉算法
每行格式:顶点v编号-其他顶点编号-最短路径值----[最短路径]。没有路径输出:顶点v编号-其他顶点编号--1。给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入一个顶点v,表示求该顶点v到其他顶点的最短路径距离。第三行起,每行输入邻接矩阵的一行,以此类推输入n行。每行输出顶点v到某个顶点的最短距离和最短路径。第一行输入t,表示有t个测试实例。第二行输入顶点数n和n个顶点信息。原创 2023-02-17 16:25:06 · 1523 阅读 · 0 评论 -
奥运排行榜
输入的第一行给出两个正整数N和M(≤224,因为世界上共有224个国家和地区),分别是参与排名的国家和地区的总个数、以及前来咨询的国家的个数。之后有N行输入,第i行给出编号为i−1的国家的金牌数、奖牌数、国民人口数(单位为百万),数字均为[0,1000]区间内的整数,用空格分隔。最后面一行给出M个前来咨询的国家的编号,用空格分隔。现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。计算方式编号为:金牌榜=1,奖牌榜=2,国民人均金牌榜=3,国民人均奖牌榜=4。原创 2023-02-08 11:45:43 · 387 阅读 · 0 评论 -
寻找大富翁
输入首先给出两个正整数N(≤106)和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。原创 2023-02-08 11:39:05 · 288 阅读 · 0 评论 -
关于堆的判断
(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的。行,每行给出一个命题。题目保证命题中的结点键值都是存在的。随后判断一系列相关命题是否为真。将一系列给定数字顺序插入一个初始为空的小顶堆。对输入的每个命题,如果其为真,则在一行中输出。个要被插入一个初始为空的小顶堆的整数。每组测试第1行包含2个正整数。原创 2023-02-08 11:35:36 · 865 阅读 · 0 评论 -
DS内排—2-路归并排序
对每组测试数据,输出2-路归并排序的每一趟排序结果。每组测试数据的输出之间有1空行。每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。输入一组字符串,用2-路归并排序按字典顺序进行降序排序。原创 2023-03-06 20:53:28 · 681 阅读 · 0 评论 -
DS内排—堆排序
给定一组数据,使用堆排序完成数据的降序排序。每趟交换、筛选后的数据序列,输出格式见样例。数据个数n,n个整数数据。初始创建的小顶堆序列。原创 2023-02-08 11:28:24 · 511 阅读 · 0 评论 -
排序之与零交换
将 { 0, 1, 2, ..., N-1 } 的任意一个排列进行排序并不困难,这里加一点难度,要求你只能通过一系列的 Swap(0, *) —— 即将一个数字与 0 交换 —— 的操作,将初始序列增序排列。首先找到0所在位置,然后找该位置应该放的数所在的位置,然后交换这两个位置上的数,有一种情况需要特别判断,当0所在位置为0的位置时,随便找一个位置不正确的数所在位置进行交换。输入在第一行给出正整数 N (≤105);随后一行给出{ 0, 1, 2, ..., N-1 } 的一个排列。原创 2023-02-08 10:57:44 · 679 阅读 · 0 评论 -
大数据量的冒泡排序 (计次数)
每组由两行组成:第一行包含正整数n(n原创 2023-02-08 10:48:30 · 372 阅读 · 0 评论 -
DS排序--快速排序
基本思想是:通过一趟排序对序列分割成两个部分,让其中一部分的元素均小于另一部分的元素,然后继续对这两部分进行排序,最终可使整体有序。每组测试数据,输出每趟快排的结果,即每次排好一个数字结果(长度为1的子序列,不用排,不用输出)。然后根据这个枢轴值把序列分成一边都比它小另一边都比它大的两个子序列。给出一个数据序列,使用快速排序算法进行从小到大的排序。第三行输入n个数据,都是正整数,数据之间用空格隔开。第二行输入n,表示第一个示例有n个数据。第一行输入t,表示有t个测试示例。快速排序是对冒泡排序的一种改进。原创 2023-02-07 16:31:02 · 861 阅读 · 0 评论 -
DS排序--希尔排序
希尔排序的基本思想是:先将整个待排序列分割成若干子序列分别进行直接插入排序,将序列变成基本有序序列后,再进行对整体进行一次直接插入排序,又称为缩小增量排序。直接插入排序时间复杂度为O(n²),如果待排序的序列已经有序,则时间复杂度提高到O(n)。对每组测试数据,输出每趟排序结果。第三行输入n个数据,都是正整数,数据之间用空格隔开。给出一个数据序列,使用希尔排序算法进行降序排序。第二行输入n,表示第一个示例有n个数据(n>1)间隔gap使用序列长度循环除2直到1。第一行输入t,表示有t个测试示例。原创 2023-02-07 16:06:20 · 1076 阅读 · 0 评论 -
DS内排—直插排序
内部排序之直接插入排序,基本操作是将一个记录插入到已经排好序的有序表中。初始时,视第一个为一个有序表,往后遍历剩余元素,一个一个的加入该有序表。外循环遍历所有元素,内循环安放每一个元素的位置。直插排序的每一趟排序结果。数据个数n,n个数据。原创 2023-02-07 15:57:41 · 636 阅读 · 0 评论 -
二叉搜索树的最近公共祖先
输入的第一行给出两个正整数:待查询的结点对数 M(≤ 1 000)和二叉搜索树中结点个数 N(≤ 10 000)。随后一行给出 N 个不同的整数,为二叉搜索树的先序遍历序列。给定一棵二叉搜索树的先序遍历序列,要求你找出任意两结点的最近公共祖先结点(简称 LCA)。如果 二叉搜索树中找不到以 U 或 V 为键值的结点,则输出。但如果 U 和 V 中的一个结点是另一个结点的祖先,则在一行中输出。是它们的最近公共祖先结点的键值,则在一行中输出。对每一对给定的 U 和 V,如果找到。是那个祖先结点的键值,原创 2022-12-12 09:50:49 · 1042 阅读 · 0 评论 -
搜索树判断
对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入的第一行包含一个正整数N(≤1000),第二行包含N个整数,为给出的整数键值序列,数字间以空格分隔。输出的第一行首先给出判断结果,如果输入的序列是某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,则输出。,下一行输出对应二叉树的后序遍历序列。原创 2022-12-12 09:51:19 · 332 阅读 · 0 评论 -
DS哈希查找--Trie树
它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。输入的一组单词,创建Trie树。输入字符串,计算以该字符串为公共前缀的单词数。第一行:一行单词,单词全小写字母,且单词不会重复,单词的长度不超过10。第2~t+1行:对每行字符串,输出树中以该字符串为公共前缀的单词数。(提示:树结点有26个指针,指向单词的下一字母结点。原创 2022-12-12 09:51:29 · 433 阅读 · 1 评论 -
DS哈希查找--链地址法(表头插入)
例如示例数据中输入两次52,第一次查找失败就把52插入到位置8,第二次查找就成功了,所以第一次输出error,第二次就输出8 1。注意,当两次输入要相同的查找数据,如果第一次查找不成功就会执行插入,那么第二次查找必然成功,且查找次数为1次(因为做表头插入)给出一个数据序列,建立哈希表,采用求余法作为哈希函数,模数为11,哈希冲突用链地址法和表头插入。第二行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。从第四行起,每行输入一个要查找的数据,都是正整数。第三行输入t,表示要查找t个数据。原创 2022-12-12 09:51:19 · 911 阅读 · 2 评论 -
DS哈希查找—二次探测再散列
定义哈希函数为H(key) = key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。0或1(0—不成功,1—成功)、比较次数、查找成功的位置(从1开始)构造的哈希表信息,数组中没有关键字的位置输出NULL。哈希表长m、关键字个数n。原创 2022-12-12 09:51:29 · 624 阅读 · 0 评论 -
DS查找—二叉树平衡因子
二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。对每组测试数据,按后序遍历的顺序输出树中结点的平衡因子(测试数据没有空树)计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。每组测试数据一行,数组元素个数n,后跟n个字符,二叉树的数组存储。原创 2022-12-12 09:50:50 · 368 阅读 · 0 评论 -
DS二叉排序树之删除
第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。从第五行起,输入m行,每行一个要删除的数据,都是自然数。从第二行起,输出删除第m个数据后的有序序列,输出m行。给出一个数据序列,建立二叉排序树,并实现删除功能。对二叉排序树进行中序遍历,可以得到有序的数据序列。第二行输入n,表示首个序列包含n个数据。第一行输入t,表示有t个数据序列。第四行输入m,表示要删除m个数据。以此类推输出下一个示例的结果。以此类推输入下一个示例。原创 2022-12-12 09:51:36 · 302 阅读 · 0 评论 -
DS二叉排序树之查找
从第二行起,输出查找结果,如果查找成功输出查找次数,如果查找失败输出-1。第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。从第五行起,输入m行,每行一个要查找的数据,都是自然数。给出一个数据序列,建立二叉排序树,并实现查找功能。对二叉排序树进行中序遍历,可以得到有序的数据序列。第二行输入n,表示首个序列包含n个数据。第一行输入t,表示有t个数据序列。第四行输入m,表示要查找m个数据。以此类推输出下一个示例的结果。原创 2022-12-12 09:51:47 · 285 阅读 · 0 评论 -
DS二叉排序树之创建和插入
从第五行起,输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等。第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。从第二行起,输出插入第m个数据后的有序序列,输出m行。给出一个数据序列,建立二叉排序树,并实现插入功能。对二叉排序树进行中序遍历,可以得到有序的数据序列。第二行输入n,表示首个序列包含n个数据。第一行输入t,表示有t个数据序列。第四行输入m,表示要插入m个数据。以此类推输出下一个示例的结果。原创 2022-12-12 09:52:13 · 423 阅读 · 0 评论 -
关键路径-STL版
给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。// 参考代码输入第一行图的顶点总数第二行边的总数第三行开始,每条边的时间长度,格式为源结点 目的结点 长度输出第一行:第个顶点的最早开始时间第二行:每个顶点的最迟开始时间输入样例1 输出样例1它给的代码是存在严重缺陷的,不能用。原创 2022-12-07 21:29:49 · 390 阅读 · 0 评论 -
社交网络图中结点的“重要性”计算
在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。在有N个结点的网络中,结点vi的“紧密度中心性”Cc(vi)数学上定义为vi到其原创 2022-12-07 21:28:43 · 387 阅读 · 0 评论 -
图综合练习--拓扑排序
已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止--程序要求--若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入第一行输入一个整数t,表示有t个有向图第二行输入n,表示图有n个顶点第原创 2022-12-07 21:27:24 · 286 阅读 · 0 评论 -
DS静态查找之顺序查找
每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error。给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始。第二行输入n个数据,都是正整数,用空格隔开。第三行输入t,表示有t个要查找的数值。第一行输入n,表示队列有n个数据。第四行起,输入t个数值,输入t行。要求使用带哨兵的顺序查找算法。原创 2022-12-01 15:16:55 · 203 阅读 · 0 评论 -
DS静态查找之折半查找
每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error。给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始。第二行输入n个数据,都是正整数,用空格隔开。第三行输入t,表示有t个要查找的数值。第一行输入n,表示队列有n个数据。第四行起,输入t个数值,输入t行。要求使用折半查找算法。原创 2022-12-05 19:24:52 · 393 阅读 · 0 评论 -
DS静态查找之顺序索引查找
每行输出一个要查找的数值在队列的位置和查找次数,数据之间用短划线隔开,如果查找不成功,输出字符串error。要求使用顺序索引查找算法,其中索引表查找和块内查找都采用不带哨兵、从头开始的顺序查找方法。给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始。第三行输入k,表示主表划分为k个块,k也是索引表的长度。第四行输入k个数据,表示索引表中每个块的最大值。第二行输入n个数据,都是正整数,用空格隔开。第五行输入t,表示有t个要查找的数值。第六行起,输入t个数值,输入t行。原创 2022-12-05 19:25:12 · 657 阅读 · 0 评论 -
DS查找——折半查找求平方根
C++参考cout原创 2022-12-05 19:25:40 · 446 阅读 · 0 评论