- 博客(40)
- 收藏
- 关注

转载 PAT 计算机程序设计能力考试--大纲
乙级(Basic Level)考生应具备以下基本能力:1. 基本的C/C++的代码设计能力,以及相关开发环境的基本调试技巧;2. 理解并掌握最基本的数据存储结构,即:数组、链表;3. 理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;4. 能够分析算法的时间复杂度、空间复杂度和算法稳定性;5. 具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。甲级...
2019-08-14 11:07:12
1328

原创 PAT (Advanced Level) Practice_推荐C++解答范本
继PAT乙级的甲级,题目的难度有明显的提升,利用C语言解答题目,某些题目无法取得简洁而高效的解答。因此,安利不会C++的同学可以使用 《从C语言转C++简明教程 v5.0+》柳婼 进行快速的入门学习,此外再去MOOC上的计算机程序设计(C++) 课程学习一下第十四周的STL,就可以获得非常愉悦的C++解题体验。当然进行系统学习是更好的。最后回到主题C++解答范本的推荐 即:柳婼优快云 ...
2019-08-05 08:10:03
611

原创 PAT (Basic Level) Practice (中文)_推荐C语言解答范本
由于能力有限,很多代码有向 @IamOliverLew 学长学习。(优快云地址;Github地址)他的代码非常简洁明了,解题方式也很有力度,个人觉得是C语言解PAT乙级的非常好的范本。我这里尽力让代码相对简洁、可读,以及作出一些我学习卢学长代码时会思考的一些点的解答。希望对大家有帮助。这里向卢学长致谢!哈哈哈 ...
2018-12-06 19:12:49
456
原创 数据结构_习题8.4 畅通工程之最低成本建设问题_习题8.5 畅通工程之局部最小花费问题_Kruskal+并查集+qsort
【代码】数据结构_习题8.4 畅通工程之最低成本建设问题。
2023-03-12 11:47:23
208
原创 数据结构_习题8.1 银行排队问题之单队列多窗口服务_习题8.2 银行排队问题之单队列多窗口加VIP服务_习题8.3 银行排队问题之单窗口“夹塞”版
【代码】数据结构_习题8.1 银行排队问题之单队列多窗口服务_习题8.2 银行排队问题之单队列多窗口加VIP服务_习题8.3 银行排队问题之单窗口“夹塞”版。
2023-03-11 23:04:17
1034
原创 PTA_数据结构与算法题目集(中文)_7-9 Huffman Codes (30 分)_简洁版解法
题目地址 题目分析:我们在分析哈夫曼树建立规则后可知,在所有(n个)数据作为子叶节点时,需且仅需(n-1个)连接点来构成完整的哈夫曼树。故,我们设置一个大小为2*n的结构体数组并使用其中1到2*n-1(共计n + n-1个位子)来建立哈夫曼树。 每次我们通过线性查找得到2个最小值,并做标记。这时,我们仅仅需要从n+1这个位置开始 记录 最小两值所处位置 直至2*n-1这个位置,而2*n-1这...
2019-09-01 12:55:28
679
原创 PAT (Advanced Level) Practice_1018 Public Bike Management (30 分)_多种最短路径的再处理(记录前驱)
题目地址 题目分析:在dijkstra算法得到最短路径的过程中,利用pre记录最短路径的不同到达方式。再对pre进行DFS即可计算并比较need需要带去的车子和cap途中保留下来的车子(即带回的车子数目)。我这里的递归计算方式的逻辑建立在1、后面多的车子不会补充前面;2、前面多的车子后面可以补充。通过dif计算前一站的差值,再分析得到need和cap,继续递归到终点比较。 我的代码: #i...
2019-08-29 13:29:26
165
原创 PAT (Advanced Level) Practice_1003 Emergency (25 分)_关于深入理解dijkstra的典型题目
题目地址 题目分析:在简单学习dijkstra后,理解层次可能是仅仅停留在了 一步一步望外走 来求最短路径。但这道题目非常好的打开了dijkstra算法的细部构造。 我们不妨将dijkstra看成三个集合,第一个为已经收录集合,第二个是可收录集合,第三个是暂时无法收集集合。 dijkstra算法有两个核心工作:第一个工作是将第二个集合挑出最小到第一个集合;第二工作是通过最新收录的元素可能把...
2019-08-28 17:01:27
325
原创 PAT (Advanced Level) Practice_1034 Head of a Gang (30 分)_字符串型的map构建
题目地址 题目分析:这道题目,考察的内容其实较为繁琐,但是理清思路后,也不见得繁琐了,注释见代码中。 我的代码: #include<iostream>#include<string>#include<map>using namespace std;int n, k, aa[2001][2001] = { 0 }, weight[2001] = ...
2019-08-24 10:56:08
190
原创 PAT (Advanced Level) Practice_1057 Stack (30 分)_利用两个set的解法(小白解法)
题目地址 题目分析:这道题目,解法很多,值得考究,这里提供一种小白解法--利用两个set来模拟出平衡的节点左右两坨。 我的代码:#include<iostream>#include<set>#include<stack>using namespace std;multiset<int>e1, e2;stack<int>...
2019-08-14 19:19:03
179
原创 PAT (Advanced Level) Practice_1064 Complete Binary Search Tree (30 分)_简洁而优雅的解法
题目地址 题目分析:利用二叉搜索树的特性,我们可以sort得到中序遍历结果,只需将这个中序遍历放入这个数目确认的完全二叉树即可。直接通过确认数目的完全二叉树的中序遍历,获得数组型完全二叉树的编号中序,而完全二叉树的data中序遍历结果已经存在了sort后的数组in当中。这里充分利用了各种树的特性,达到了简洁而优雅,哈哈哈。我的代码:#include<cstdio>...
2019-08-04 17:34:06
176
原创 PAT (Advanced Level) Practice_1020 Tree Traversals (25 分)_1043 Is It a Binary Search Tree (25 分)
题目地址1;题目地址2 题目解析:这两道题目都可以对其给出的数字,根据树的特性进行划分左右子树,利用递归思路进行解题。值得进行学习,以便深入理解树的某些特性;过程当中有个需要认真思考的地方,在于递归的结束结点的处理。 就题目1020而言,根据后序中序找层序遍历的解题思路是,后序的末尾是妈妈树,然后在中序根据妈妈树划分左右子树,再递归执行这个过程。其中,我们一层一层的深入下去,其实产生了一个先...
2019-08-03 09:07:10
134
原创 PAT (Advanced Level) Practice_1091 Acute Stroke (30 分)_含翻译
题目地址 题目解析:现在发现读题确实是一个值得认真考虑的问题!其次这道题目我将给出两种解答,只是上下左右位移方式的操作变化。(感谢LiuChuo) 题目翻译如下: 急性脑卒中 识别急性脑卒中的重要手段之一是根据中风核心的体积来判定。题目给出一个定义于每个MRI切片的核心区域分析的图像结果,你需要计算出中风核心的体积。 输入格式: 每个输入文件包含一个测试案例。在每个测试案例中...
2019-08-02 10:49:23
261
原创 PAT (Advanced Level) Practice_1103 Integer Factorization (30 分)
题目地址 题目分析:这里剪枝最关键的一步,是在于解决已经出现过的情况,因为位置的变化会再次出现。经过分析可以知道,从可以取的最大元素开始,我们以后再取也只能取等于小于它的元素,不能取更大的元素了。(否则必然大于n值,就是说可以取的大的元素被取走了,不可能再取比被取的元素更大的了,一取就大于了n。)这里我用了use来控制选取元素不能比前面大。现在一想,题目的输出要求其实就是在暗示我们...
2019-08-01 10:23:53
157
原创 PAT (Advanced Level) Practice_1079 Total Sales of Supply Chain (25 分)_(含题目翻译及解读)
题目地址题目翻译及解读: 商品供应链是由 零售商、经销商和供应商构成,其中每一个都参与了商品从供应商到消费者的流通过程。 从一个供应商开始,供应链的成员都是以价格P从供应商处购买,并以高出P的r%的价格进行分销或者贩卖。且只有零售商会和消费者直接进行交易。这里我们假设供应链的每个成员除了根节点供应商外就只有一个其他供应商,并且这里并不存在供应循环的关系。现在,给出一条供应链...
2019-07-24 10:44:54
830
原创 PTA_数据结构与算法题目集(中文)_7-14 电话聊天狂人 (25 分)_HASH_四种解法(学习C++_map & _unorder_map)
题目地址 题目解析:分析见中国MOOC数据结构,我这里将依次给出1、排序后统计解法,2、不完整的Hash解法(没有查找功能),3、C++中的map解答(最后一个测试点超时)4、C++中的unorder_map解答 我的代码:1、排序后统计#include<stdio.h>#include<stdlib.h>int cmp(const void * a, c...
2019-07-17 10:47:10
680
1
原创 PTA_数据结构与算法题目集(中文)_7-12 排序 (25 分)_九种解法
题目地址题目不分析我的代码:1、 qsort#include<stdio.h>#include<stdlib.h>int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;} int main(){ int n, aa[100000]; scanf("%d"...
2019-07-17 10:46:10
812
原创 PTA_数据结构与算法题目集(中文)_7-11 关键活动 (30 分)
题目地址 题目解析:值得注意的是题目的输出要求--1、输出所有的关键活动。2、关键活动输出的顺序规则是:任务开始的交接点编号小者优先,起点编号相同时,与输入时任务的顺序相反。(利用rbegin()和rend()非常方便!) 参考代码 我的代码:#include<iostream>#include<vector>#include<queue>usi...
2019-03-19 16:36:25
875
1
原创 PTA_数据结构与算法题目集(中文)_7-10 公路村村通 (30 分)_Kruskal算法
题目地址 题目解析:典型的加权连通图的最小生成树问题 我的代码:#include<stdio.h>#include<stdlib.h>int n, m, bb[1001] = { 0 };typedef struct road * rp;struct road{ int a, b, c;};rp aa[3001] = { NULL }; int ai...
2019-03-01 21:11:44
570
原创 PTA_数据结构与算法题目集(中文)_7-8 哈利·波特的考试 (25 分)_Dijkstra算法和Floyd算法实现
题目地址 题目解析:非常典型的多源最短路径题目 我的代码:1、Dijkstra算法#include<stdio.h>#include<string.h>#define INF 0x3f3f3f3fint n, m, aa[101][101];void reader(void){ scanf("%d %d", &n, &m); me...
2019-03-01 21:07:40
593
1
原创 PTA_数据结构与算法题目集(中文)_7-4 是否同一棵二叉搜索树 (25 point(s))
注释的坑以后填 链表解法#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *left; struct node *right;};typedef struct node *tp;tp buildtree(int n);void insertree(tp B...
2019-01-20 11:09:06
375
原创 PAT (Basic Level) Practice (中文)1015 德才论 (25 分)&1020 月饼 (25 分)(25 分)_C语言实现
题目地址:1015 德才论 (25 分)&1020 月饼 (25 分)题目解析:1.这两道题目都是典型的分层级排序,利用qsort在comp中写明比较次序,很容易的就可以将题目解答。2.qsort是PAT乙级当中多次需要用到的一个函数,非常方便。使用方式如下:/*所在头函数库*/#include<stdlib.h> /*你需要的排序方式函数comp*/...
2018-12-07 23:42:58
243
原创 PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)_C语言实现
题目地址 题目解析:这里我的处理方式有一定简洁性,可供参考。 我的代码:#include<stdio.h>int main(){ int n,aa[101]={0};//构建包含下标2-100的数组(输入的数字的范围)记录每次运算的情况 scanf("%d",&n); //0代表未输入且未出现在验证过程中; for(int i=0,pos;i<n;...
2018-12-07 12:19:50
278
原创 PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)(20 分)_C语言实现
题目地址 题目解析:很简单,尤其是选用边读取边处理的解决办法 我的代码:#include<stdio.h>#include<string.h>int main(){ int n; scanf("%d\n",&n); int max=101,min=-1,num;//赋予特殊值初始化,保证第一次被num赋值 char aa[6][11]={{...
2018-12-07 10:34:10
274
1
原创 PAT (Basic Level) Practice (中文)_1003 我要通过! (20 分)_C语言实现
题目地址 题目解析:这道题目最大的困难还是在于理解题意。而且当初困惑了我许久,因为才开始接触程序题目,没有一个良好的解题方式。这里我用我归纳的解题方式,来解决这道问题1.列出已知条件a.条件1:字符串中必须仅有 P、 A、 T 这三种字符,不可以包含其它字符;b.由条件2可得:PAT 或 A(n个)+PAT+A(n个)c.由条件3可得:a P b T c ...
2018-12-06 21:20:58
786
2
原创 PAT (Basic Level) Practice (中文)_1002 写出这个数 (20 分)_C语言实现
题目地址 题目解析:值得注意的是,处理字符串的方式,以及输出的方式 我的代码:# include<stdio.h>int main(){ int sum=0; char ch, *aa[]={"ling","yi", "er","san","si","wu","liu","qi","ba&q
2018-12-06 19:40:29
246
1
原创 PAT (Basic Level) Practice (中文)_1001 害死人不偿命的(3n+1)猜想 (15 分)_C语言实现
题目地址 我的代码:#include <stdio.h>int main(){ int num; scanf("%d", &num); int n = 0; while(num != 1) { if (num % 2) num = 3 * num + 1; num = num / 2; n++; } printf("%d", n);...
2018-12-06 19:01:49
151
1
原创 PTA_基础编程题目集_7-15 计算圆周率 (15 分)_C语言实现
题目地址 题目分析:此处唯一需要注意的是都用double,不然精度无法满足。 我的代码:#include<stdio.h> int main(){ double a; scanf("%lf", &a); double up = 1, down = 1; double t = 1, ts = 0; for (double i=1; t>=a; i...
2018-11-10 21:50:05
2447
1
原创 PTA_基础编程题目集_7-4 BCD解密 (10 分)_C语言实现
题目地址 题目解读:BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。 _ _ _ _ _ _ _ _ + _ _ _ _ 每四个比特表示一位 一个字节来表达两位~十进制的数 2.一个BCD数的十六进制是0x12即 原始BCD:0001 0010; 解读BCD~十六进制:0x12; 解读BCD~十进制:12误认BCD为2进制~十六进制:0...
2018-11-03 15:50:10
3304
原创 PTA_基础编程题目集_7-2 然后是几点 (15 分)_C语言实现
题目地址 我的代码#include<stdio.h>int main(){ int basis, add, end; scanf("%d %d", &basis, &add); int val = (basis % 100 + add) / 60; int min = (basis % 100 + add) % 60; //注意题...
2018-10-31 10:06:13
2336
3
原创 PTA_基础编程题目集_6-11 求自定类型元素序列的中位数 (25 分)“qsort使用案例“
题目地址 我的代码#include <stdlib.h>int compare(const void *arg1, const void *arg2);ElementType Median(ElementType A[], int N){ ElementType *t; t = &A[0]; qsort(t,N, sizeof(ElementType), c...
2018-10-29 20:15:53
345
1
原创 PTA_基础编程题目集_6-10 阶乘计算升级版 (20 分)“大数阶乘”
题目地址 题目分析:1.预估1000!的位数~~进行放大估计~~1000^900&100^100即是3*900+2*100+o<3000位;2.这里显然需要利用数组来保存数字并进行运算,让数组成员每个保存3位数字(题目条件已告知参数小于1000),我们构建1200个成员的数组(3600位);3.难点在于我们对数组成员间相乘、进位的考虑,这里容易误入歧途;这里本质上来讲,与...
2018-10-23 10:41:10
912
原创 PTA_基础编程题目集_6-7 统计某类完全平方数 (20 分)
题目地址 我的代码int IsTheNumber(const int N){ int n = N, tn, jud = 0, mark = 0; tn = (int)(sqrt((double)(n)));//利用非完全平方整数,开方存在小数;double强行转int,将舍弃小数部分 if (tn*tn == n) //若 tn平方后 等于 被开方数,说明n是完全平方整数(不存在...
2018-10-16 15:21:32
1004
原创 PTA_基础编程题目集_6-6 求单链表结点的阶乘和 (15 分)
题目地址 我的代码int FactorialSum(List L){ int su2 = 0; for (; L!= NULL;) { int su1 = 1;//默认了 0!= 1 的情况 for (int i = L->Data; i > 1; i--) su1 *= i; su2 += su1; L = L->Next; } retu...
2018-10-16 15:13:51
507
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人