pta
三枪一个麻辣烫
这个作者很懒,什么都没留下…
展开
-
L1-006 连续因子 (20 分)
L1-006 连续因子 (20 分)一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N< 231 )。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。输入样原创 2022-03-08 20:33:39 · 168 阅读 · 0 评论 -
考试座位号
L1-005 考试座位号 (15 分)每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数原创 2022-03-08 19:49:21 · 286 阅读 · 0 评论 -
是否完全二叉搜索树
L3-010 是否完全二叉搜索树 (30 分)将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO。输入样例原创 2022-03-06 19:49:24 · 335 阅读 · 0 评论 -
完全二叉树的层序遍历
L2-035 完全二叉树的层序遍历 (25 分)一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍原创 2022-03-06 19:23:14 · 140 阅读 · 0 评论 -
文件编程 python pta 7-1~4 +多文件编程1
8-1 文件编程7-1 (10 分)7-1.有一个英文文件"example.txt".编写一个程序把大写字母变小写,小写字母变大写,其他字符不变. 结果写入文件"result.txt"。@ 程序压缩后(zip)以文件形式上传!f2=open('result.txt','a')with open('example.txt') as f: while True: st = f.readline() if not st: break原创 2021-12-04 12:25:32 · 7287 阅读 · 0 评论 -
插入排序还是归并排序
插入排序还是归并排序根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?输入格式:输入在第一行给出正整数 N (≤100);随后一行给出原始原创 2021-12-02 19:39:30 · 358 阅读 · 3 评论 -
计算长方形的周长和面积(类和对象)python
计算长方形的周长和面积(类和对象)设计一个长方形类Rect,计算长方形的周长与面积。成员变量:整型、私有的数据成员length(长)、width(宽);构造方法如下:(1)Rect(int length) —— 1个整数表示正方形的边长(2)Rect(int length, int width)——2个整数分别表示长方形长和宽成员方法:包含求面积和周长。(可适当添加其他方法)要求:编写主函数,对Rect类进行测试,输出每个长方形的长、宽、周长和面积。输入格式:输入多组数据;一行中若有1个整原创 2021-11-30 14:47:42 · 8185 阅读 · 0 评论 -
7-3 点赞狂魔
点赞狂魔微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F 1 ⋯F原创 2021-11-28 10:24:55 · 699 阅读 · 0 评论 -
7-8 快速排序 输出每一趟
快速排序给定一个整数序列,请按非递减序输出采用快速排序(递归法)的各趟排序后的结果。注意:每趟排序以排序区间的首元素为枢轴(支点)。输入格式:测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数n(1≤n≤100),第二行输入n个整数。输出格式:对于每组测试,输出若干行,每行是一趟排序后的结果,每行的每两个数据之间留一个空格。输入样例:48 7 2 1输出样例:1 7 2 81 7 2 81 2 7 8#include<iostream>#include<原创 2021-11-28 08:52:50 · 8745 阅读 · 0 评论 -
7-8 中序遍历树并判断是否为二叉搜索树
中序遍历树并判断是否为二叉搜索树对给定的有N个节点(N>=0)的二叉树,给出中序遍历序列,并判断是否为二叉搜索树。题目保证二叉树不超过200个节点,节点数值在整型int范围内且各不相同。输入格式:第一行是一个非负整数N,表示有N个节点第二行是一个整数k,是树根的元素值接下来有N-1行,每行是一个新节点,格式为 r d e 三个整数,r表示该节点的父节点元素值(保证父节点存在);d是方向,0表示该节点为父节点的左儿子,1表示右儿子;e是该节点的元素值输出格式:首先输出二叉树的中序遍历序原创 2021-11-27 10:45:47 · 2471 阅读 · 2 评论 -
7-3 词频统计
7-3 词频统计请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的 “单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。输入格式:输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。输出格式:在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如 “PAT”和“pat”被认为是同一个单词。原创 2021-11-26 21:05:11 · 1882 阅读 · 2 评论 -
7-5 悄悄关注
悄悄关注新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。之后给出该用户点赞的信息原创 2021-11-25 19:07:09 · 237 阅读 · 0 评论 -
7-5 逆序对
逆序对给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式:第一行包含整数n,表示数列的长度;第二行包含 n 个整数,表示整个数列。(1≤n≤100000)输出格式:输出一个整数,表示逆序对的个数。输入样例:62 3 4 5 6 1输出样例:5#include<iostream>#include<c原创 2021-11-24 18:17:40 · 316 阅读 · 2 评论 -
7-7 词典 (15 分)
词典你刚从滑铁卢搬到了一个大城市,这里的人们讲一种难以理解的外语方言。幸运的是,你有一本字典来帮助你理解它们。输入格式:输入第一行是正整数N和M,后面是N行字典条目(最多10000条),然后是M行要翻译的外语单词(最多10000个)。每一个字典条目都包含一个英语单词,后面跟着一个空格和一个外语单词。 输入中的每个单词都由最多10个小写字母组成。输出格式:输出翻译后的英文单词,每行一个单词。非词典中的外来词汇输出“eh”。输入样例:5 3dog ogdaycat atcaypig igp原创 2021-11-23 18:33:40 · 1301 阅读 · 0 评论 -
集合相似度
7-4 集合相似度 (25 分)给定两个整数集合,它们的相似度定义为:N c /N t×100%。其中N c是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104 ),是集合中元素的个数;然后跟M个[0,109 ]区间内的整数。之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的编号原创 2021-11-21 19:36:56 · 815 阅读 · 3 评论 -
7-7 最短工期
最短工期一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。输入格式:首先第一行给出两个正整数:项目里程碑的数量 N(≤100)和任务总数 M。这里的里程碑从 0 到 N−1 编号。随后 M 行,每行给出一项任务的描述,格式为“任务起始里程碑 任务结束里程碑 工作时长”,三个数字均为非负整数,以空格分隔。输出格式:如果整个项目的安排是合理可行的,原创 2021-11-16 19:54:15 · 736 阅读 · 1 评论 -
任务调度的合理性
7-5 任务调度的合理性 (25 分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一原创 2021-11-15 20:17:04 · 322 阅读 · 1 评论 -
公路村村通
公路村村通现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4原创 2021-11-09 06:30:00 · 271 阅读 · 0 评论 -
邻接表创建无向图
邻接表创建无向图采用邻接表创建无向图G ,依次输出各顶点的度。输入格式:输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。 输入第二行为顶点的信息,每个顶点只能用一个字符表示。 依次输入j行,每行输入一条边依附的顶点。输出格式:依次输出各顶点的度,行末没有最后的空格。输入样例:5 7ABCDEABADBCBECDCEDE输出样例:2 3 3 3 3邻接表法#include<iostream>#include&原创 2021-11-06 21:33:20 · 835 阅读 · 1 评论 -
邻接矩阵表示法创建无向图
邻接矩阵表示法创建无向图采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度。输入格式:输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。 输入第二行为顶点的信息,每个顶点只能用一个字符表示。 依次输入j行,每行输入一条边依附的顶点。输出格式:依次输出各顶点的度,行末没有最后的空格。输入样例:5 7ABCDEABADBCBECDCEDE输出样例:2 3 3 3 3零阶矩阵法#include<iostream>原创 2021-11-06 21:17:42 · 3676 阅读 · 0 评论 -
7-8路径判断
路径判断给定一个有N个顶点和E条边的无向图,请判断给定的两个顶点之间是否有路径存在。 假设顶点从0到N−1编号。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。最后一行给出两个顶点编号i,j(0≤i,j<N),i和j之间用空格分隔。输出格式:如果i和j之间存在路径,则输出"There is a path between i and j.",否则输出"There is no path原创 2021-11-06 16:36:38 · 1377 阅读 · 0 评论 -
Dijkstra算法(模板)
Dijkstra算法(模板)给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图,求 s 到 t 的最短路。输入格式:第一行四个由空格隔开的整数 n、m、s、t。之后的 m 行,每行三个正整数 s 、t 、w (1≤w ≤1e9),表示一条从s 到 t 长度为 w 的边。输出格式:一个整数,表示从s 到t 的最短路径长度。数据保证至少存在一条道路。输入样例:7 11 5 42 4 21 4 37 2 23 4 35 7 57 3 3原创 2021-11-03 18:42:35 · 799 阅读 · 2 评论