![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pta
文章平均质量分 63
海马有力量
Ship it!
展开
-
【PTA】L2-038 病毒溯源 (25 分)(DFS求最长路径并记录)
L2-038 病毒溯源 (25 分)病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。输入格式:输入在第一行中给出一个正整数 N(≤10 4 ),即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。随后 N 行原创 2022-04-20 10:07:05 · 872 阅读 · 0 评论 -
【PTA】L3-010 是否完全二叉搜索树 (30 分)
将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO。输入样例1:938 45 42 24 58 30 6原创 2022-04-15 21:22:02 · 249 阅读 · 0 评论 -
【PTA】L3-029 还原文件 (30 分)(DFS)
L3-029 还原文件 (30 分)一份重要文件被撕成两半,其中一半还被送进了碎纸机。我们将碎纸机里找到的纸条进行编号,如图 1 所示。然后根据断口的折线形状跟没有切碎的半张纸进行匹配,最后还原成图 2 的样子。要求你输出还原后纸条的正确拼接顺序。图1 纸条编号图2 还原结果输入格式:输入首先在第一行中给出一个正整数 N(1<N≤10e5 ),为没有切碎的半张纸上断口折线角点的个数;随后一行给出从左到右 N 个折线角点的高度值(均为不超过 100 的非负整数)。随后一行给出一个正原创 2021-04-26 16:17:16 · 1809 阅读 · 0 评论 -
【PTA】L2-037 包装机 (25 分)(堆栈)
L2-037 包装机 (25 分)L2-037 包装机 (25 分)一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。图1 自动包装机的结构图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态一种特殊情况是,因为筐的容量是有限的,原创 2021-04-26 16:14:12 · 3534 阅读 · 3 评论 -
L3-014 周游世界 (30 分)
L3-014 周游世界 (30 分)周游世界是件浪漫事,但规划旅行路线就不一定了…… 全世界有成千上万条航线、铁路线、大巴线,令人眼花缭乱。所以旅行社会选择部分运输公司组成联盟,每家公司提供一条线路,然后帮助客户规划由联盟内企业支持的旅行路线。本题就要求你帮旅行社实现一个自动规划路线的程序,使得对任何给定的起点和终点,可以找出最顺畅的路线。所谓“最顺畅”,首先是指中途经停站最少;如果经停站一样多,则取需要换乘线路次数最少的路线。输入格式:输入在第一行给出一个正整数N(≤100),即联盟公司的数量。接下原创 2021-04-23 15:19:41 · 842 阅读 · 2 评论 -
【PTA】L3-015 球队“食物链” (30 分)(DFS+剪枝)
L3-015 球队“食物链” (30 分)输入样例1:5-LWDWW-LDWWW-LWDWW-WDDLW-输出样例1:1 3 5 4 2输入样例2:5-WDDWD-DWLDD-DWDDW-DDDDD-输出样例2:No Solutiondfs遍历,要注意的是两两相互对局,给出的样例图并不是对称的。写到有一个测试点超时时,就感觉突破口是食物链最后的点连接着第一个点。#include<bits/stdc++.h>using namespace std原创 2021-04-16 12:22:39 · 369 阅读 · 0 评论 -
【PTA】L2-035 完全二叉树的层序遍历
L2-035 完全二叉树的层序遍历 (25分)一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历原创 2021-01-27 11:34:23 · 5823 阅读 · 5 评论 -
【PTA】 关于堆的判断 (25分)
L2-012 关于堆的判断 (25分)将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点;x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(≤ 1000)和M(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−1000原创 2020-11-26 17:45:01 · 806 阅读 · 0 评论 -
【pta】好前缀&好中缀&好后缀(kmp算法的next数组应用)
好前缀我们称一个字符串的前缀为好前缀,如果它满足如下条件:(1)它在字符串中至少出现2次;(2)满足条件(1)的最长者。请编写程序计算一个字符串的好前缀长度,注意一个字符串不能称为自己的前缀。输入格式:输入为一个字符串,包含不超过10^5 个字母。输出格式:输出为一个整数,表示输入字符串的好前缀长度。输入样例1:abcabce输出样例1:3输入样例2:ababaxxy输出样例2:3kmp介绍这题是求字符串中前缀和子串相同的最长长度,可以应用kmp算法。kmp是字原创 2020-11-11 11:25:33 · 3024 阅读 · 1 评论 -
【pta】社交集群 (30分)(并查集)
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友。一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。输入格式:输入在第一行给出一个正整数 N(≤1000),为社交网络平台注册的所有用户的人数。于是这些人从 1 到 N 编号。随后 N 行,每行按以下格式给出一个人的兴趣爱好列表:Ki: h[1] h[2] … h[Ki]其中K (>0)是兴趣爱好的个数,hi [j]是第j个兴趣爱好的编号,为区间 [1, 1000原创 2020-10-05 11:28:53 · 771 阅读 · 0 评论 -
进阶实验8-2.1 逆散列问题 (30分)
进阶实验8-2.1 逆散列问题 (30分)给定长度为 N 的散列表,处理整数最常用的散列映射是 H(x)=x%N。如果我们决定用线性探测解决冲突问题,则给定一个顺序输入的整数序列后,我们可以很容易得到这些整数在散列表中的分布。例如我们将 1、2、3 顺序插入长度为 3 的散列表HT[]后,将得到HT[0]=3,HT[1]=1,HT[2]=2的结果。但是现在要求解决的是“逆散列问题”,即给定整数在散列表中的分布,问这些整数是按什么顺序插入的?输入格式:输入的第一行是正整数 N(≤1000),为散列表的原创 2020-10-01 17:36:52 · 1665 阅读 · 0 评论 -
试题 历届试题 拉马车(模拟,string)
问题描述 小的时候,你玩过纸牌游戏吗? 有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下: A方:[K, 8, X, K, A, 2, A, 9, 5, A] B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双方轮流出牌。当轮到某一方出牌时,他从自己的纸牌队列的头部拿走一张,放到桌上,并且压在最上面一张原创 2020-10-01 11:58:49 · 113 阅读 · 0 评论 -
7-27 家谱处理 (30分)
7-27 家谱处理 (30分)人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人的名字。第一行中的名字是这个家族最早的祖先。家谱仅包含最早祖先的后代,而他们的丈夫或妻子不出现在家谱中。每个人的子女比父母多缩进2个空格。以上述家谱文本文件为例,Jo原创 2020-09-28 15:30:19 · 330 阅读 · 0 评论 -
树的同构 (25分)
7-3 树的同构 (25分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个原创 2020-09-24 18:09:24 · 358 阅读 · 0 评论 -
L3-011 直捣黄龙 (30分)&L3-007 天梯地图 (30分)(最短路,二三测试点)
L3-011 直捣黄龙 (30分)本题是一部战争大片 —— 你需要从己方大本营出发,一路攻城略地杀到敌方大本营。首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营。当这样的路径不唯一时,要求选择可以沿途解放最多城镇的路径。若这样的路径也不唯一,则选择可以有效杀伤最多敌军的路径。输入格式:输入第一行给出 2 个正整数 N(2 ≤ N ≤ 200,城镇总数)和 K(城镇间道路条数),以及己方大本营和敌方大本营的代号。随后 N-1 行,每行给出除了己方大本营外的一个城镇的代号和驻守的敌军原创 2020-06-26 16:20:26 · 507 阅读 · 0 评论 -
L3-005 垃圾箱分布 (30分)(最短路)
L3-005 垃圾箱分布 (30分)大家倒垃圾的时候,都希望垃圾箱距离自己比较近,但是谁都不愿意守着垃圾箱住。所以垃圾箱的位置必须选在到所有居民点的最短距离最长的地方,同时还要保证每个居民点都在距离它一个不太远的范围内。现给定一个居民区的地图,以及若干垃圾箱的候选地点,请你推荐最合适的地点。如果解不唯一,则输出到所有居民点的平均距离最短的那个解。如果这样的解还是不唯一,则输出编号最小的地点。...原创 2020-02-05 14:03:04 · 492 阅读 · 9 评论 -
pta 特殊队列 (30分)
普通的队列仅有 EnQueue 和 DeQueue 两种操作,分别表示在队尾增加元素和取出队首元素。现在给队列增加一种新的操作 DeleteMid,表示删除队列的中间元素。对于有 N 个元素的队列,若 N 为偶数,中间元素定义为从队首到队尾的第 N/2 个元素;若 N 为奇数,中间元素定义为第 (N+1)/2 个元素。现给出队列的一系列操作,输出相应结果。输入格式:第一行输入一个不超过 10...原创 2020-01-19 15:37:54 · 1316 阅读 · 0 评论 -
PTA 奥运排行榜(排序)
每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。输入格式:输入的第一行给出两个正整数N和M(≤224...原创 2020-01-16 16:06:51 · 1092 阅读 · 0 评论 -
7-9 旅游规划 (25分)(最短路bellman-ford,dijskra)
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;...原创 2020-01-15 15:00:41 · 583 阅读 · 0 评论 -
L2-013 红色警报 (25 分)(并查集)
战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 < N ≤ 500)和M(≤ 5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路...原创 2019-07-19 11:40:46 · 451 阅读 · 0 评论 -
螺旋方阵
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例:1 2 3 4 516 17 18 19 615 24 25 20 714 2...原创 2019-03-20 18:15:54 · 541 阅读 · 0 评论 -
整除光棍
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。...原创 2019-03-20 18:18:19 · 101 阅读 · 0 评论 -
天梯座位分配
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员…… 以此类推。如果最后只剩下 1 所学校的...原创 2019-03-20 18:31:18 · 805 阅读 · 0 评论 -
【PTA】复数的四则运算
本题要求编写程序,计算2个复数的和、差、积、商。输入格式:输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。输出格式:分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0...原创 2019-03-21 08:10:20 · 6768 阅读 · 7 评论 -
大数相除
1017 A除以B (20 分)本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以 1 空格分隔。输入样例:123456789050987654321 7输出样例:1763...原创 2019-03-21 10:59:27 · 221 阅读 · 0 评论 -
线性表元素的区间删除
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:List Delete( List L, ElementType minD, ElementType maxD );其中List结构定义如下:typedef int Position;typedef struct LNode List;s...原创 2019-04-05 15:56:25 · 790 阅读 · 1 评论 -
链式表操作集
本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;stru...原创 2019-04-06 19:53:18 · 369 阅读 · 0 评论 -
顺序表操作集
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty();Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Position...原创 2019-04-06 19:54:36 · 793 阅读 · 0 评论 -
带头结点的链式表操作集
本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty();Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef struct L...原创 2019-04-07 10:17:11 · 475 阅读 · 0 评论 -
表达式转换(中缀表达式转为后缀表达式)
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入...原创 2019-04-17 13:10:19 · 4461 阅读 · 5 评论 -
数列求和-加强版
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123以前不会写,今天看看有思路了,这个方法应该是比较简单的了#include<stdio.h>...原创 2019-05-02 16:14:45 · 568 阅读 · 1 评论 -
【PTA】还原二叉树 && 根据后序和中序遍历输出先序遍历&&树的遍历
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5#include<stdio.h>#inc...原创 2019-04-23 20:12:37 · 2111 阅读 · 0 评论 -
L2-031 深入虎穴 (25 分)(dfs)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。内线告诉他,情报就藏在迷宫...原创 2019-05-10 11:52:40 · 599 阅读 · 0 评论 -
L2-020 功夫传人 (25 分)(dfs)
一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多...原创 2019-05-12 09:17:54 · 144 阅读 · 0 评论 -
邻接矩阵存储图的深度优先遍历 邻接表存储图的广度优先遍历 详解
邻接矩阵存储图的深度优先遍历试实现邻接矩阵存储图的深度优先遍历。函数接口定义:void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );其中MGraph是邻接矩阵存储的图,定义如下:typedef struct GNode PtrToGNode;struct GNode{int Nv; / 顶点数 /int Ne; / ...原创 2019-05-31 11:51:34 · 15086 阅读 · 0 评论 -
公路村村通 && 畅通工程之最低成本建设问题&P1265 公路修建(生成最小树)
公路村村通畅通工程之最低成本建设问题两题是一样的,就是不满足条件的时候输出的不一样。现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。...原创 2019-06-02 08:06:30 · 1080 阅读 · 0 评论 -
1003 Emergency (25 分)(最短路条数)
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the l...原创 2019-06-24 17:05:35 · 110 阅读 · 0 评论 -
说反话 加强版
pta 说反话 加强版给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样例:Hello Worl...原创 2019-03-20 17:52:26 · 691 阅读 · 0 评论