PTA浙江大学数据结构MOOC
JiangHe1997
寐寐吾思之
展开
-
04-树4 是否同一棵二叉搜索树(25 分)
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列...原创 2018-04-22 20:40:09 · 266 阅读 · 0 评论 -
浙江大学数据结构PTA作业题解(二分查找,最长子列和)
01-复杂度3 二分查找 (20 分)本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MA...原创 2019-05-27 07:44:06 · 1335 阅读 · 0 评论 -
1020 月饼 (25 分)(只得23分)
1020 月饼 (25 分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么...原创 2019-07-04 08:39:25 · 137 阅读 · 0 评论 -
PTA乙级练习题1021-1023
1021 个位数统计 (15 分)给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000...原创 2019-07-04 08:42:59 · 340 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1026-1027
1026 程序运行时间 (15 分)要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先...原创 2019-07-04 08:45:02 · 129 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1031-1032
1031 查验身份证 (15 分)一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 ...原创 2019-07-04 08:54:50 · 123 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1037-1038
1037 在霍格沃茨找零钱 (20 分)如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galle...原创 2019-07-04 08:58:10 · 304 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1091-1093
1091 N-自守数 (15 分)如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3×922=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数。本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。输入格式:输入在第一行中给出正整数 M(≤20),随后一行给出 M 个待检测...原创 2019-07-04 09:00:37 · 191 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1046-1047
1046 划拳 (15 分)划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后...原创 2019-07-04 09:03:06 · 161 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1041
1041 考试座位号 (15 分)每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数...原创 2019-07-04 09:04:31 · 139 阅读 · 0 评论 -
PTA乙级1011-1019
1020月饼那个题有一个测试点通不过,等通过了再补上1011 A+B 和 C (15 分)给定区间 [−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。输入格式:输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。输出格式:对每组测试用例,...原创 2019-05-26 22:46:05 · 279 阅读 · 0 评论 -
05-树8 File Transfer (25 分)
05-树8 File Transfer (25 分)We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to se...原创 2019-05-18 22:53:44 · 634 阅读 · 0 评论 -
02-线性结构1 两个有序链表序列的合并 (15 分)
02-线性结构1 两个有序链表序列的合并 (15 分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /*...原创 2019-05-01 22:44:06 · 600 阅读 · 0 评论 -
02-线性结构3 Reversing Linked List(25 分)
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4...原创 2018-04-18 23:04:29 · 1056 阅读 · 0 评论 -
06-图1 列出连通集(25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v1 v2 ... vk }"的...原创 2018-04-30 20:24:44 · 254 阅读 · 0 评论 -
06-图2 Saving James Bond - Easy Version(25 分)
06-图2 Saving James Bond - Easy Version(25 分)This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug de...原创 2018-04-30 20:30:34 · 233 阅读 · 0 评论 -
06-图3 六度空间(30 分)
06-图3 六度空间(30 分)“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家...原创 2018-05-01 09:35:18 · 364 阅读 · 0 评论 -
03-树1 树的同构(25 分)
03-树1树的同构(25 分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数...原创 2018-04-21 20:48:17 · 158 阅读 · 0 评论 -
03-树2 List Leaves(25 分)
03-树2 List Leaves(25 分)Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the...原创 2018-04-21 22:42:02 · 285 阅读 · 0 评论 -
最短路问题
单元最短路(Single-Soure Shortest Paths)SSSP无权图,路径是1;采用深度优先搜索,定义dist数字存储路径长度,,之后进行深度优先搜索。利用dist存储路径长度还有一个好处就是不用建立visited数组进行存储是否遍历过。dist数组初始化-1;伪码描述:void Unweight(int S){建立队列,S入队;只要队列不空,所有和S相连的W,只要W的dist是-1...原创 2018-05-05 16:19:08 · 298 阅读 · 0 评论 -
PAT乙级1001-1010
1001 害死人不偿命的(3n+1)猜想 (15 分)卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证...原创 2019-01-27 22:49:46 · 305 阅读 · 0 评论 -
C++中带空格的字符串输入
#include<iostream>using namespace std;int main(){ string str; getline(cin,str); cout<<str; return 0;}利用getline函数原创 2019-04-11 20:54:08 · 4046 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1043
1043 输出PATest (20 分)给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104 的、仅由英...原创 2019-07-04 09:05:42 · 176 阅读 · 0 评论