PTA
giao源
这是一位来自广东靓仔,平时喜欢收收房租,打打代码
展开
-
L1-7 机工士姆斯塔迪奥
L1-7 机工士姆斯塔迪奥输出格式:输出一个数,表示安全格子的数量。输入样例:5 5 30 20 41 3输出样例:12解题思路:分别统计要释放技能的行 r 和列c(测试点 :重复只算一次) ,我们可以用set来判断,然后结果就等于= 全部格子(N*M)- 全部行的格子(r *M)-全部列的格子(c *N)+列和行重复的格子(r *c);#include<iostream>#include<algorithm>#include<string>原创 2022-04-26 20:02:28 · 1022 阅读 · 0 评论 -
L1-5 试试手气 (2022天梯赛)
L1-5 试试手气 我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;2、在满足条件 1 的前提下,每次都能让每个骰子得到可能得到的最大点数。那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。输入格式:输入第一行给出 6 个骰子的初始点数,即 [1,6] 之间的整数,数字原创 2022-04-26 19:40:03 · 771 阅读 · 0 评论 -
天梯赛 L2-2 老板的作息表
L2-2 老板的作息表新浪微博上有人发了某老板的作息时间表,表示其每天 4:30 就起床了。但立刻有眼尖的网友问:这时间表不完整啊,早上九点到下午一点干啥了?本题就请你编写程序,检查任意一张时间表,找出其中没写出来的时间段。输入格式:输入第一行给出一个正整数 N,为作息表上列出的时间段的个数。随后 N 行,每行给出一个时间段,格式为:hh:mm:ss - hh:mm:ss其中 hh、mm、ss 分别是两位数表示的小时、分钟、秒。第一个时间是开始时间,第二个是结束时间。题目保证所有时间都在一天之原创 2022-04-26 19:05:39 · 1537 阅读 · 0 评论 -
玩转二叉树 (25 分)(容易理解的打法)
玩转二叉树 (25 分)给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7原创 2022-04-15 22:41:14 · 514 阅读 · 2 评论 -
PTA 古风排版 (20 分)队列方法
古风排版 (20 分)中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsi ce s解题思路:开1000个队列,每n个字符放到队列中,记录实际需要原创 2022-04-11 21:03:59 · 690 阅读 · 0 评论 -
二叉树第k层最后一个结点
二叉树第k层最后一个结点 (10 分)给定一棵非空二叉树,其结点的数据域为不等于0的整数,请编写程序输出该二叉树中第k层最后一个结点的值,若不存在则输出0。输入格式:输入第1行为一组用空格间隔的整数,个数不超过100个,表示带空指针信息的二叉树先根序列。其中空指针信息用0表示。第2行为一个整数k。输出格式:输出为一个整数,表示该二叉树中第k层最后一个结点的值,若不存在则输出0。输入样例1:1 2 0 0 3 0 01输出样例1:3输入样例2:1 -2 0 0 3 -1 0 0 -原创 2022-04-04 20:49:44 · 2045 阅读 · 0 评论 -
7-8 三元组表加法 (10 分)
三元组表加法 (10 分) 两个同阶稀疏矩阵A和B分别都采用三元组表示,编写程序求C=A+B,要求C也采用三元组表示。输入格式:第一行为两个不超过1000的正整数m和n,表示矩阵A和B的非零元素个数,即A和B的三元组表长度。接下来的m行,分别表示矩阵A的m个三元组结点信息,每行3个整数表示每个三元组结点的行号、列号、值。接下来的n行,分别表示矩阵B的n个三元组结点信息,每行3个整数表示每个三元组结点的行号、列号、值。输出格式:输出矩阵C的三元组表,每个三元组结点一行,同行元素间用空格间隔,每行最后原创 2022-04-04 20:24:40 · 2262 阅读 · 2 评论 -
二叉树路径和 (10 分)
二叉树路径和 编写程序找出二叉树中和最大的路径,二叉树结点为不等于0的整数。本题的“路径”限定为以根结点为起点,以叶结点为终点的路径。路径的和,即该路径所包含的所有结点的数据值之和。输入格式:输入为一组用空格间隔的整数,个数不超过100个,表示带空指针信息的二叉树先根序列。输出格式:输出为两行,第一行为该二叉树路径和的最大值,第二行为一组整数,每个整数后一个空格,即该最大路径包含的结点值(按从根的叶的顺序),如果存在多条满足条件路径,则输出最左边一条。输入样例1: 1 2 0 0 3 0 0原创 2022-03-29 16:30:20 · 2217 阅读 · 1 评论 -
二叉树每层度为1节点数
7-12 二叉树每层度为1节点数 (10 分)编写程序统计一棵非空二叉树中每层度为1的结点的数目,二叉树结点个数不超过100。输入格式:输入为一个字符串,表示带空指针信息的二叉树先根序列。其中空指针信息用#表示,二叉树结点为a-z, A-Z的字母。输出格式:输出为若干行,按层数从小到大次序输出二叉树每层度为1的结点个数,即第1行输出第0层度为1的结点个数,第2行输出第1层度为1的结点个数,以此类推。输入样例:ABD###CE###输出样例:020思路很简单,就是建树然后根据层次遍原创 2022-03-29 15:26:23 · 2600 阅读 · 0 评论 -
PTA 二叉树删除子树 (5 分)
二叉树删除子树 (5 分)编写程序对给定二叉树执行若干次删除子树操作,输出每次删除子树后剩余二叉树的中根序列。二叉树结点的数据域值为不等于0的整数。每次删除操作是在上一次删除操作后剩下的二叉树上执行。输入格式:输入第1行为一组用空格间隔的整数,表示带空指针信息的二叉树先根序列,其中空指针信息用0表示。例如1 5 8 0 0 0 6 0 0表示如下图的二叉树。第2行为整数m,表示要进行的删除操作次数。接下来m行,每行一个不等于0的整数K,表示要删除以K为根的子树。m不超过100,二叉树结点个数不超过50原创 2022-03-28 15:09:42 · 461 阅读 · 0 评论 -
PTA二叉树查找结点及父结点 (5 分)
二叉树查找结点及父结点 (5 分)编写程序在二叉树中查找给定结点及父结点。二叉树结点的数据域值不等于0的整数。输入格式:输入第1行为一组用空格间隔的整数,表示带空指针信息的二叉树先根序列,其中空指针用0表示。例如1 5 8 0 0 0 6 0 0表示如下图的二叉树。第2行为整数m,表示查询个数。接下来m行,每行为一个不等于0的整数K,表示要查找的结点的数据值。m不超过100,二叉树结点个数不超过150000,高度不超过6000。输入数据保证二叉树各结点数据值互不相等。PA567.jpg输出格式:原创 2022-03-28 14:55:29 · 1603 阅读 · 0 评论 -
数据结构与算法题目集(中文)7-3 树的同构 (25 分)
数据结构与算法题目集(中文)7-3 树的同构 (25 分)树的同构给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结原创 2022-03-20 15:36:08 · 186 阅读 · 0 评论 -
PTA 1056 组合数的和 (15 分)
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位数字的和。输入样例:3 2 8 5结尾无空行输出样例:330结尾无空行题解: 嵌套遍历数组 一个一个组原创 2022-01-08 16:37:47 · 659 阅读 · 0 评论 -
二叉树知先序和中序求后序||二叉树知后序和中序求先序(数组递归实现)
二叉树递归实现知先序和中序求后序知后序和中序求先序知先序和中序求后序7-42 重构二叉树 (25 分)给出两个字符串,分别表示二叉树的先序遍历(根、左子树、右子树)和中序遍历(左子树、根、右子树)的结果。例如,对于下面的二叉树,先序遍历结果是DBACEGF,中序遍历结果是ABCDEFG。假定二叉树的每个节点都用大写的字母标识,且对于同一棵二叉树,同一个字母不会用两次。现在请你根据给出的先序遍历和中序遍历,重构这棵二叉树。输入格式:输入包含一个或多个测试用例。每个测试用例一行,给出两个字符串原创 2021-05-30 14:14:19 · 352 阅读 · 0 评论 -
两个有序链表序列的交集(20分)数组和链表两种方法
7-171 两个有序链表序列的交集 (60 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 5方法一:数组实现:#include<stdio原创 2021-05-06 22:04:19 · 3189 阅读 · 2 评论 -
PTA 7-13 列车调度 (25 分) C语言和C++实现(二分查找)
7-13 列车调度 (25 分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤105 ),下一行给出从1到N的整数序号的一个重排列原创 2021-04-27 23:49:13 · 8459 阅读 · 4 评论 -
求前缀表达式的值 (25 分)
求前缀表达式的值 (25 分)算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。请设计程序计算前缀表达式的结果值。输入格式:输入在一行内给出不超过30个字符的前缀表达式,只包含+、-、*、/以及运算数,不同对象(运算数、运算符号)之间以空格分隔。输出格式:输出前缀表达式的运算结果,保留小数点后1位,或错误信息ERROR。输入样例:+ + 2 * 3 - 7 4原创 2021-04-27 22:13:57 · 317 阅读 · 0 评论