PAT
爱玲姐姐
大家好,我是计爱玲,英文名:Cathy,是一名前端开发工程师,热爱解锁各种前端新技术。我的爱豆是王一博,当然我也想认识更多同行的帅哥,
我的微信jal517486222,欢迎加我好友交流编程技术*^_^*
个人网站:https://jiailing.com
展开
-
PAT-Top-1004 To Buy or Not to Buy - Hard Version (35分)
1004 To Buy or Not to Buy - Hard Version (35分)题目传送门:1004 To Buy or Not to Buy - Hard Version (35分)一、题目大意二、解题思路dfs判断是否选取这一个三、AC代码#include<bits/stdc++.h>using namespace std;const int N = 1...原创 2020-02-15 16:43:04 · 843 阅读 · 0 评论 -
PAT-Top-1003 Universal Travel Sites (35分)网络流最大流
1003 Universal Travel Sites (35分)题目传送门:1003 Universal Travel Sites (35分)一、题目大意二、解题思路网络流问题,第一次尝试,看了刘汝佳的《算法竞赛入门经典》上的例子和代码,理解了后自己写了出来,居然真的AC了,????????☺️三、AC代码#include<bits/stdc++.h>using namespace...原创 2020-02-15 16:36:43 · 1913 阅读 · 0 评论 -
PAT-Top-1002 Business (35分) 动态规划(0-1背包)
1002 Business (35分)题目传送门:1002 Business (35分)一、题目大意任务调度··二、解题思路刚开始用dfs超时了···然后参考了某位网友的思路,使用动态规划写出来了参考题解:https://blog.csdn.net/qq_41562704/article/details/100826468三、AC代码#include<bits/stdc++....原创 2020-02-15 16:31:41 · 780 阅读 · 0 评论 -
PAT-Top-1001 Battle Over Cities - Hard Version (35分)最小生成树
1001 Battle Over Cities - Hard Version (35分)题目传送门:1001 Battle Over Cities - Hard Version (35分)一、题目大意被敌人占领的城市,与这个城市所有相邻的边都无法通行。如果某一点被占领后需要将剩余的点相连花费的代价最大,则这点为重点关注的点。如果产生最大代价有多个相同的点,则都要输出。二、解题思路去掉一个...原创 2020-02-15 16:23:03 · 1009 阅读 · 0 评论 -
PAT-A-1068 Find More Coins (30 分)动态规划(背包)C++题解
1068 Find More Coins (30 分)题目传送门:1068 Find More Coins (30 分)一、题目大意给定n个硬币,求组成m的硬币的最小字典序组合二、解题思路背包问题。刚开始没想到什么好的思路,参考了这篇博客:1068 Find More Coins (30 分)背包问题三、AC代码#include<bits/stdc++.h>using ...原创 2019-08-27 06:37:39 · 906 阅读 · 0 评论 -
PAT-A-1069 The Black Hole of Numbers (20 分) 模拟 数字转化成6147
1069 The Black Hole of Numbers (20 分)题目传送门:1069 The Black Hole of Numbers (20 分)一、题目大意给定数字n,n的范围是(0, 10000), 将n的各个位进行排序后,降序减升序获得一个新的数字,拿新的数字进行同样的操作,循环往复,最后得到6147.输出操作过程。例如6767:输出:7766 - 6677 = 1...原创 2019-08-27 07:21:03 · 794 阅读 · 0 评论 -
PAT-A-1071 Speech Patterns (25 分) 字符串处理,transform、istringstream的使用 C++题解
1071 Speech Patterns (25 分)题目传送门:1071 Speech Patterns (25 分)一、题目大意词频统计。在忽略大小写的情况下,统计出频率最高的单词,并输出次数。对单词的定义是由大小写字母和数字组成,单词的首尾不能是字母和数字(要不然子串也能算单词了)二、解题思路这个题目的难点在于有很多非空格的杂乱字符存在,如,:"'.这些符号,如果没有这些字符只有单...原创 2019-08-27 10:59:19 · 760 阅读 · 0 评论 -
PAT-A-1078 Hashing (25 分) 哈希表二次探测再散列 C++题解
1078 Hashing (25 分)题目传送门:1078 Hashing (25 分)一、题目大意将给定长度为n的数组放到长度为M的哈希表中,如果M不是素数,则将M往后扩大到M后面的第一个素数。在哈希时如果冲突,则二次探测再散列。刚开始没注意这一句:Quadratic probing (with positive increments only) is used to solve the...原创 2019-08-29 21:55:26 · 1272 阅读 · 0 评论 -
PAT-A-1079 Total Sales of Supply Chain (25 分) BFS广度优先搜索 C++题解
1079 Total Sales of Supply Chain (25 分)题目传送门:1079 Total Sales of Supply Chain (25 分)一、题目大意商品销售链上有供应商、经销商、零售商,供应商以原价P将商品卖给经销商或者零售商,而经销商将会价格提高r%再卖给下一级的经销商或者零售商。零售商从上一级买到商品后,也会将价格提高r%,然后直接卖给用户。题目保证每一级...原创 2019-08-30 07:10:38 · 910 阅读 · 0 评论 -
PAT-A-1082 Read Number in Chinese (25 分) 数字转中文读法,字符串处理C++题解
1082 Read Number in Chinese (25 分)题目传送门:1082 Read Number in Chinese (25 分)一、题目大意将数字按照中文读法输出Sample Input 1:-123456789Sample Output 1:Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba ...原创 2019-09-01 07:29:25 · 866 阅读 · 0 评论 -
PAT-A-1086 Tree Traversals Again (25 分)二叉树先中序转后序 C++题解
1086 Tree Traversals Again (25 分)题目传送门:1086 Tree Traversals Again (25 分)一、题目大意这道题的难点就在于是否能读懂题意了。。。题目说的神乎其神,看似在用栈模拟二叉树的构造,以一种压栈顺序,出栈的顺序就是中序。仔细研究下发现入栈顺序是二叉树的先序(题目好像没说明是先序入栈,只说按1-n入栈),而出栈顺序是中序。那么既然有了先...原创 2019-09-01 16:42:13 · 774 阅读 · 0 评论 -
PAT-A-1096 Consecutive Factors (20 分)最长连续因子 C++题解
1096 Consecutive Factors (20 分)题目传送门:1096 Consecutive Factors (20 分)一、题目大意给定一个数整数n,求n分解成多个因子相乘后,包含最长的连续因子的个数。如果包含最长连续因为个数的解有多个,则输出最小的一组解。二、解题思路刚开始想歪了,我居然打表打出了12!内的连续整数成绩的种类和对应的数量,这样其实是错的,因为这个连续区...原创 2019-09-05 06:25:11 · 970 阅读 · 0 评论 -
PAT-A-1101 Quick Sort (25 分)打两个表,每一位左边最大的数,以及每一个右边最小的数 C++题解
1101 Quick Sort (25 分)题目传送门:1101 Quick Sort (25 分)一、题目大意快速排序中,有个partition函数,是选定一个标兵,然后将比它小的数移动到它左侧,比它大的数移动到右侧。现在给定一个数组,判断数组中的元素会不会是一个标兵(即判断它左边的数是不是都小于等于它,右侧的数是不是都大于等于它)。数组中第一个数只需要考虑它右边的数是不是都比它大即可。...原创 2019-09-06 11:13:54 · 759 阅读 · 0 评论 -
2019秋季PAT甲级考试总结:努力+策略+运气
经过一两个月的备战PAT,在今天终于画上了一个圆满的句号,取得了满分的成绩。我是在南京的金陵科技学院考试的,三个月前就报好了名,256元报名费。考试时间是从下午13:30-16:30,共四个题目,分别是20分,25分,25分,30分。考试环境是线上考试,在PAT的桌面客户端提交代码,其实就是和https://pintia.cn网站的页面一样。编程环境Java是eclipse,C++是Dev和co...原创 2019-09-10 07:10:58 · 5994 阅读 · 21 评论 -
PAT-A-1066 Root of AVL Tree (25 分) 创建平衡二叉查找树 C++题解
1066 Root of AVL Tree (25 分)题目传送门:1066 Root of AVL Tree (25 分)一、题目大意给定一个数列,创建平衡二叉查找树二、解题思路这道题就是一个赤裸裸的构建平衡树的问题,然而我之前一直没有写过平衡树的代码,因为对平衡树的旋转不太理解。这次我不想绕过这个知识盲点了,在网上搜了博客学习平衡树的知识。平衡树(AVL)的旋转操作参考了这篇博客:...原创 2019-08-26 12:40:30 · 805 阅读 · 0 评论 -
PAT-A-1045 Favorite Color Stripe (30 分) 动态规划--最长非降子序列 C++题解
1045 Favorite Color Stripe (30 分)题目传送门:1045 Favorite Color Stripe (30 分)一、题目大意给定数组1、数组2,求数组2的最长的符合数组1中元素顺序的子序列。For example, given a stripe of colors {2 2 4 1 5 5 6 3 1 1 5 6}. If Eva’s favorite c...原创 2019-08-21 23:31:27 · 916 阅读 · 0 评论 -
PAT-A-1044 Shopping in Mars (25 分)滑动窗口、队列的使用 C++题解
1044 Shopping in Mars (25 分)题目传送门:1044 Shopping in Mars (25 分)一、题目大意求长度为n的数组中,和为m的所有子数组,输出所有子数组的左右下标。如果没有和为m的子数组,则输出最小的和超过m的子数组。二、解题思路通过队列保存滑动窗口,并且通过一个变量sum同步保存当前滑动窗口里子数组的和。循环判断当窗口里的子数组和大于等于m时,则...原创 2019-08-21 16:45:02 · 834 阅读 · 0 评论 -
PAT-A-1003 图论Dijkstra算法+DFS打表(C++题解)
题目大意题目传送门:PAT-A-1003求最短路径的数量,和最短路径中的最大点权和解题思路Dijkstra算法求最大点权和的最短路径,+DFS(打表)求最短路径数量AC代码代码解析见文中注释部分#include <bits/stdc++.h>using namespace std;template <typename T = int>T read(){...原创 2019-07-24 00:38:27 · 919 阅读 · 0 评论 -
PAT-A-1014 Waiting in Line (30 分) 模拟 C++题解
1014 Waiting in Line (30 分)一、题目大意题目传送门:1014 Waiting in Line (30 分)银行有n个窗口,每个窗口前面最多可排m个人,共有k个人来银行办理业务,已知了每个人办理业务需要花费的时间。求指定的q个人什么时刻可以办完业务。银行在8:00上班,在17:00之后下班,如果处理到某人已经下班了则输出Sorry。每个窗口排满了m个人后,剩下的人要等...原创 2019-07-29 23:23:40 · 784 阅读 · 0 评论 -
PAT-A-1017 Queueing at Bank (25 分) 优先级队列模拟 C++题解
1017 Queueing at Bank (25 分)题目传送门:1017 Queueing at Bank (25 分)一、题目大意n个人,k个窗口,求平均每个人等待的时间。超过17:00到达的人不会被服务,也就是不算入平均时间。8:00开门,来早的人要等到8:00才会得到服务。二、解题思路定义一个结构体存储每个人来到银行的时间、开始被服务的时间、结束被服务的时间。定义一个优先级队列...原创 2019-08-04 09:56:08 · 820 阅读 · 0 评论 -
PAT-A-1010 Radix (25 分) 二分求解
1010 Radix (25 分)一、题目大意给出两个数n1,n2,还给出tag和radix,如果tag为1,则radix为n1的进制,如果tag=2,则radix为n2的进制,求另一个数在什么进制下与这个数相等。二、解题思路首先:当tag=2时,swap(n1,n2)此题有坑。我刚开始以为所求进制只是从2到36,因为输入的两个数中只有0-z,分别代表基数0-35,然鹅,提交了好多次...原创 2019-07-28 21:22:56 · 848 阅读 · 0 评论 -
PAT-A-1033 To Fill or Not to Fill (25 分)贪心算法 C++题解
1033 To Fill or Not to Fill (25 分)题目传送门:1033 To Fill or Not to Fill (25 分)一、题目大意求从杭州站到目的站的最小油费。杭州站与目的站之间有很多个加油站,每个加油站的油价不同。如果无法到达输出最大行驶距离,否则输出到达目的站的最小油费。二、解题思路这道题很明显是贪心算法,但是具体怎么求下一站点,还挺复杂的。注意:题...原创 2019-08-18 20:46:41 · 884 阅读 · 0 评论 -
PAT-A-1038 Recover the Smallest Number (30 分) 排序规则:a+b<b+a
1038 Recover the Smallest Number (30 分)题目传送门:1038 Recover the Smallest Number (30 分)一、题目大意求n个数字能拼接成的最小整数Sample Input:5 32 321 3214 0229 87Sample Output:22932132143287赠送样例1:Input:2 123 12Out...原创 2019-08-19 23:26:34 · 768 阅读 · 0 评论 -
PAT-A-1030 Travel Plan (30 分)双重指标(最短路径、最小花费)的Dijkstra算法(使用优先级队列)+打印路径(C++题解)
1030 Travel Plan (30 分)题目传送门:1030 Travel Plan (30 分)一、题目大意给定城市之间的距离和费用,求出发点和终点之间最短路径,如果最短路径有多条,则求最短路径中的最小花费,并且打印路径。Sample Input:4 5 0 30 1 1 201 3 2 300 3 4 100 2 2 202 3 1 20Sample Outpu...原创 2019-08-15 00:54:15 · 766 阅读 · 0 评论 -
PAT-A-1040 Longest Symmetric String (25 分) 动态规划求最长对称字串 C++题解
1040 Longest Symmetric String (25 分)题目传送门:1040 Longest Symmetric String (25 分)一、题目大意求字符串的最大对称子串的长度二、解题思路这道题可以用动态规划来处理,转移方程为:dp[i]=dp[i−1]+2,当s[i]==s[i−1]dp[i] = dp[i-1] + 2, 当s[i] == s[i-1]dp[...原创 2019-08-20 14:50:33 · 816 阅读 · 0 评论 -
PAT-A-1057 Stack (30 分) 树状数组+二分 (C++题解)
1057 Stack (30 分)题目传送门:1057 Stack (30 分)一、题目大意模拟栈的操作,增加找栈中中位数的功能二、解题思路第一次写树状数组知识点的题,之前一直不懂树状数组,感觉不好理解那个后缀数组,今天看到一篇很好的文章终于搞懂了树状数组,感谢这位大佬的博客:树状数组简单易懂的详解通过树状数组维护数组,快速得到前缀和,然后就通过常规的二分,来快速找到中位数。三、A...原创 2019-08-24 18:42:05 · 822 阅读 · 0 评论 -
PAT-A-1049 Counting Ones (30 分) 数位DP C++题解
1049 Counting Ones (30 分)题目传送门:1049 Counting Ones (30 分)一看到这道题就知道考的是数位DP,倔强的我不想找模板~~,自己写才有成就感。昨晚临睡觉前开始写的,今天早起继续写,居然一交就AC了,呵呵,开心原创 2019-08-23 07:28:26 · 922 阅读 · 0 评论 -
PAT-A 1020 Tree Traversals (25 分) 二叉树后中序遍历转按层遍历(C++题解)
1020 Tree Traversals (25 分)题目传送门:1020 Tree Traversals (25 分)一、题目大意给出二叉树的后序遍历和中序遍历,求二叉树的按层遍历。二、解题思路要想知道按层遍历的结果,只需要在遍历二叉树的过程中将每个节点的值存到数组对应下标里就行了。通常我们对二叉树的标号都是根节点的下标为1。如果当前点的下标是i,则其左孩子的下标是2∗i2*i2∗i...原创 2019-08-12 14:28:02 · 885 阅读 · 0 评论 -
PAT-A-1043 Is It a Binary Search Tree (25 分)递归判断二叉查找树 C++题解
1043 Is It a Binary Search Tree (25 分)题目传送门:1043 Is It a Binary Search Tree (25 分)一、题目大意判断给定的序列是否可以构成一个二叉查找树或镜像二叉查找树。二、解题思路递归判断指定的区间序列是否是二叉查找树的先序。区间[left, right]中,left是先序二叉树的根,设p为左子树的右端点,q为右子树的右...原创 2019-08-21 14:48:40 · 777 阅读 · 0 评论 -
PAT-A-1064 Complete Binary Search Tree (30 分) 完全二叉查找树+排序后中序遍历构建完全二叉树
1064 Complete Binary Search Tree (30 分)题目传送门:1064 Complete Binary Search Tree (30 分)一、题目大意给定一个长度为n的序列,构成一个完全二叉查找树,横向遍历输出二、解题思路拿着样例将完全二叉查找树画出来就会发现,这个树从树顶拿一个手电筒照下来,节点映射到水平面的顺序就是有序的 ,其实就是将给定序列排好序的中序...原创 2019-08-25 21:03:44 · 875 阅读 · 0 评论 -
PAT-A-1004 搜索树的每层叶节点的数目,广度优先搜索(BFS)C++题解
1004 Counting Leaves (30 分)题目大意题目传送门:PAT-A-1004求树每层叶节点(0个子节点)的数量解题思路题目的这种输入简直就是为邻接表准备的原创 2019-07-24 07:22:27 · 1022 阅读 · 1 评论