
PTA天梯二阶题目集
里面包含我写的所有的PTA上的天梯固定题目集中的代码
黄大仙No.1
黄大仙
展开
-
7-15 深入虎穴 (25分)
7-15 深入虎穴 (25分)著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇...原创 2020-01-27 20:30:36 · 2094 阅读 · 0 评论 -
L2-002 链表去重 (25 分)
L2-002 链表去重 (25 分)给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。输入格式:输入在第一行给出 L 的第一个结点的地址和一个正...原创 2019-08-20 01:05:23 · 1144 阅读 · 0 评论 -
L2-003 月饼 (25 分)
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。 样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 ...原创 2019-08-20 01:35:40 · 1018 阅读 · 0 评论 -
L2-005 集合相似度 (25 分)
输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104),是集合中元素的个数;然后跟M个[0,109 ]区间内的整数。之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以空格分隔。输出格式:对每一对需要计算的集合,在一行中输出它们的相似度,为保...原创 2019-08-20 15:02:36 · 370 阅读 · 0 评论 -
L2-008 最长对称子串 (25 分)
L2-008 最长对称子串 (25 分)对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetric?输出...原创 2019-08-20 18:11:51 · 399 阅读 · 0 评论 -
L2-011 玩转二叉树 (25 分)
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不...原创 2019-08-20 20:07:12 · 1646 阅读 · 0 评论 -
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)...原创 2019-08-20 21:03:41 · 962 阅读 · 0 评论 -
L2-013 红色警报 (25 分)
输入样例:5 40 11 33 00 451 2 0 4 3输出样例:City 1 is lost.City 2 is lost.Red Alert: City 0 is lost!City 4 is lost.City 3 is lost.Game Over.该题需要注意的是,在当深搜或广搜求得连通块数量时,只有数量增加才发出警报,否则不发出警报即可,而并非改变...原创 2019-08-21 17:32:23 · 309 阅读 · 0 评论 -
L2-014 列车调度 (25 分)详解
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N ...原创 2019-08-21 19:14:32 · 9988 阅读 · 12 评论 -
L2-015 互评成绩 (25 分)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤104 ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业...原创 2019-08-21 19:32:56 · 825 阅读 · 0 评论 -
L2-016 愿天下有情人都是失散多年的兄妹 (25 分)
怎么说呢,这道题快把我逼疯了都,我从一开始就考虑错了,没有考虑父亲母亲与自己的关系,直接将他们建立了一个邻接表,然后直接BFS控制深度,到最后导致全错。后来才知道所谓代以内,并不是通过一个顶点经过不超过5层深度BFS访问到另一个顶点,而是5代以内有没有同一个祖宗。如果5代内有同一个祖宗,并且是异性,很显然是要输出“No\n”的了,需要注意的是,遍历过程中可能会遇到并非是输入中直接给出的孩子编号(即...原创 2019-08-22 00:43:27 · 205 阅读 · 0 评论 -
L2-017 人以群分 (25 分)
这道题就是一道排序题,只不过问的方式稍微变了一下,其实就是将排序后的后半部分和与前半部分和相减,由于题目要求数据规模接近,并且差较大,很显然在数据规模为奇数的情况下活跃人数要比不活跃人数多一,由此便可得出以下代码。#include<iostream>#include<algorithm>using namespace std;int main(){ int n;...原创 2019-08-22 01:06:46 · 293 阅读 · 0 评论 -
L2-020 功夫传人 (25 分)(详解)
这道题大一上学期校内天梯选拔的时候遇到过,但是没有学过数据结构,就是再用循环和一个非常大的二位数组去做,结果有几个测试点段错误,还有运行超时之类的,得了十几分后来这道题就没怎么看过,现在该上大二了,再看这道题,感觉是真的简单,直接BFS广搜一遍就行了。由于题目保证了每个徒弟只有一个师傅,这就致使从祖宗往下进行广度优先搜索时,BFS的深度就是徒弟的代数,定义一个level[]数组表示第几层,祖宗的...原创 2019-08-22 15:00:29 · 1401 阅读 · 2 评论 -
L2-021 点赞狂魔 (25 分)
这道题直接用map就行,我用了三个map,mp是用来判断对于一个人str来说,这个标签是否已经出现过的,cnt记录str的点击过的标签种类数,cishu就是str的一共的点赞次数,最后将他们放入结构体数组中,,按照题意排序再输出就OK了,这道题难度还是相当低的。#include<iostream>#include<map>#include<set>#in...原创 2019-08-22 16:18:33 · 431 阅读 · 0 评论 -
L2-022 重排链表 (25 分)
这道题其实不难,不妨定义一个结构体数组,把下标当作链表地址,每个结构体里面存放当前地址,下一个节点地址,以及数据,然后遍历整条链表,把遍历过程中链表的每一个节点都放在vector中,最后按照题目要求输出即可。#include<iostream>#include<algorithm>#include<vector>using namespace std;...原创 2019-08-22 17:09:32 · 586 阅读 · 0 评论 -
L2-023 图着色问题 (25 分)
做这道题有一点需要注意,我一开始以为题目给的图一定是连通图,没有在dfs外套for循环,结果有一个测试点过不去,最后尝试着加上后就对了。#include<iostream>#include<vector>#include<set>#include<cstring>using namespace std;vector<int> ...原创 2019-08-22 17:54:54 · 493 阅读 · 3 评论 -
L2-024 部落 (25 分)
这是一道非常简单的并查集问题,相信无需多言,具体大家看代码。#include<iostream>#include<set> using namespace std;int f[10004];void unit(void){ for(int i=0;i<10003;i++) f[i]=i;}int find(int x){ if(f[x]!=x)...原创 2019-08-22 18:33:40 · 481 阅读 · 0 评论 -
L2-025 分而治之 (25 分)
这道题很简单,一开始我还以为检测是否被分治需要DFS或BFS,后来分析样例发现根本就不用,两个for循环就能检测出来了。#include<iostream>#include<vector>#include<cstring>using namespace std;int n,m;vector<int> G[10005];bool vis[...原创 2019-08-22 19:20:31 · 353 阅读 · 0 评论 -
L2-026 小字辈 (25 分)
这道题是真心简单,天梯选拔赛曾经做过,没做出来,因为当时还没有学数据结构里的图,现在才发现,这道题其实就是一个图题(有向图),只是稍微变了一下图中输入的方式而已。这里我就不再解释为什么是图了,相信提示到这里大家应该能想起来了,就是一个连通有向图,并且从祖宗出发能够遍历到所有节点。以下给出代码。#include<iostream>#include<vector>#in...原创 2019-08-22 19:52:40 · 490 阅读 · 0 评论 -
L2-027 名人堂与代金券 (25 分)
一道简单的排序题,对于排序后名次的问题,如果当前的分数>前面学生的分数,则将当前学生的名次记为i+1(于循环变量有关),否则如果相等,则等于前面学生的名次#include<iostream>#include<algorithm>#include<vector>using namespace std;struct node{ string nam...原创 2019-08-22 20:32:41 · 324 阅读 · 0 评论 -
L2-019 悄悄关注 (25 分)
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注...原创 2019-08-22 23:00:12 · 250 阅读 · 0 评论 -
L2-010 排座位 (25 分)
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系...原创 2019-08-22 23:04:51 · 241 阅读 · 0 评论 -
L2-029 特立独行的幸福 (25 分)
对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 ...原创 2019-10-22 13:04:44 · 330 阅读 · 0 评论 -
L2-032 彩虹瓶 (25 分)
彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆...原创 2019-08-29 23:16:27 · 327 阅读 · 0 评论