PAT
巧乐兹呀
这个作者很懒,什么都没留下…
展开
-
PAT甲级 2019年冬季 题解
题目1:7-1 Good in C (20分)When your interviewer asks you to write “Hello World” using C, can you do as the following figure shows?Input Specification:Each input file contains one test case. For each case, the first part gives the 26 capital English letters原创 2020-08-23 17:20:51 · 799 阅读 · 0 评论 -
7-4 Structure of a Binary Tree
题目描述Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, a binary tree can be uniquely determined.Now given a sequence of statements about the structure of the resulting tree, you原创 2020-08-22 18:10:48 · 214 阅读 · 0 评论 -
PAT1009 Product of Polynomials
原题链接PAT1009 Product of Polynomials思路注意最后结果的最大项系数最大为2000代码#include <bits/stdc++.h>#include <iomanip>using namespace std;double a[10010],b[10010],c[10010];//0-1000int main(){//2 ...原创 2020-04-26 10:18:52 · 128 阅读 · 0 评论 -
PAT1002. A+B for Polynomials
原题链接PAT1002. A+B for Polynomials解题思路注意合并之后系数为0的项,就无需再输出的。这个点注意了就好。代码#include <bits/stdc++.h>#include <iomanip>using namespace std;double a[10010];//0-1000int main(){//2 1 2.4 0...原创 2020-04-26 10:16:42 · 154 阅读 · 0 评论 -
PAT1072 Gas Station-Dijkstra算法
原题链接1072 Gas Station思路题目大意,存在n个居民点和m个加油站。现在需要从这m个加油站中选出一个加油站,要求这个加油站到所有居民点中最短距离的最短距离要最大,且距离不能超过输入中指定的范围。需要注意的是,计算最短距离时,需要考虑居民点和加油站,因为加油站和居民点之间也是有路径可达的。为了表示的方便,将加油站的编号变换到n+1~n+m之间。我想这一步对你而言应该很简答。...原创 2020-04-23 15:41:04 · 236 阅读 · 0 评论 -
PAT1073 Scientific Notation
原文:我的个人博客原题链接1073 Scientific Notation思路 简单的字符串操作。不过要细心一点。n保存E后面的字符串所对应的数字,t保存E前面的字符串,不包括符号位。当n小于0时表示向前移动,那么先输出0. 然后输出abs(n)-1个0,然后继续输出t中的所有数字;当n>0时候表示向后移动,那么先输出第一个字符,然后将t中尽可能输出n个字符,如果t已经输出...原创 2020-02-08 12:53:29 · 110 阅读 · 0 评论 -
PAT1076 Forwards on Weibo
原文:我的个人博客原题链接1076 Forwards on Weibo考点 图的遍历,广度优先遍历思路 简单的广搜就可以解决。在广搜的过程中记录所在的层次。代码#include <bits/stdc++.h>using namespace std;vector<int> net[10010];bool visit[10010];...原创 2020-02-08 12:52:26 · 146 阅读 · 0 评论 -
PAT 1077 Kuchiguse
原文:我的个人博客原题链接1077 Kuchiguse考点 字符串的处理思路 将字符串逆序,求最长的公共子串即可。用ans记录当前的最长字串,每来一个新的字符串更新ans。代码#include <bits/stdc++.h>using namespace std;int main(){ //找最长后缀 int n; ci...原创 2020-02-08 12:51:17 · 109 阅读 · 0 评论 -
PAT1078 Hashing
原题链接 1078 Hashing考点 用平方探测法解决Hash冲突。思路 根据题目要求,表的大小最好的素数,因此首先更新表的大小。在用平方探测去找相应的位置并输出即可。代码#include <iostream>#include <cmath> #include <vector> using namespace std;...原创 2020-02-08 12:50:20 · 92 阅读 · 0 评论 -
PAT1079 Total Sales of Supply Chain
原文:我的个人博客原题链接1079 Total Sales of Supply Chain考点 树的深度优先遍历思路 给一棵树,在树根出货物的价格为p,然后从根结点开始每往下走一层,该层的货物价格将会在父亲结点的价格上增加r%,给出每个叶结点的货物量,求他们的价格之和。抽象为树的题目,给你每个节点的孩子节点。如果是叶子节点(零售商),就给你它的权重(商品数量),需要让...原创 2020-02-08 12:49:48 · 121 阅读 · 0 评论 -
PAT1081 Rational Sum
原文:我的个人博客原题链接1081 Rational Sum思路 为了避免超出long的范围,每一次的累加都将分子分母做相应的处理。代码#include <iostream>using namespace std;long long n=0,m=1,tmp;long gcd(long a,long b){ if(a<b) swap(a,b...原创 2020-02-08 12:48:39 · 132 阅读 · 0 评论 -
PAT1020 Tree Traversals (25分)
原文链接:我的个人博客原题链接1020 Tree Traversals (25分)考点 树的遍历思路 根据题目给定的后序序列和中序序列进行建树。再利用层次遍历输出结果代码#include <iostream>#include <vector> #include <queue>using namespace std;v...原创 2020-02-05 12:20:05 · 120 阅读 · 0 评论 -
PAT1066 Root of AVL Tree
原文链接:我的个人博客原题链接1066 Root of AVL Tree考点 AVL树思路 主要考查的就是平衡二叉树。可以先看这篇文章。代码#include <iostream>#include <cmath>using namespace std;struct node{ int key; node *left,...原创 2020-02-05 12:18:29 · 109 阅读 · 0 评论 -
PAT1067 Sort with Swap(0, i)
原文链接:我的个人博客原题链接1067 Sort with Swap(0, i)考点 贪心法思路 要求的次数最少。就也就是要保证每一次的交换都属有效的。也就是贪心法的思想遍历数组,当数组中的元素不在最终的位置时,进行交换操作。当有0参与时直接计数。当没有0参与时,次数要+2.因为要把0换进换出。来源:牛客网思路:逆向思维,从a[0]开始依次交换,一定能找到0。按照...原创 2020-02-05 12:16:12 · 137 阅读 · 0 评论 -
PAT1064 Complete Binary Search Tree完全二叉搜索树
原文链接:我的个人博客原题链接1064 Complete Binary Search Tree考点 树、BST的性质思路 给定一系列不同的非负整数,如果要求树也必须是完全二叉搜索树,则可以构造唯一的二叉搜要求输出层次遍历的结果。 这里要充分利用BST和完全二叉树的性质。对于BST而言,中序遍历的结果是有序的。如果是完全二叉树,则可以用数组来表示二叉树,数组中的顺序输...原创 2020-02-03 21:25:01 · 144 阅读 · 0 评论 -
PAT 1088 Rational Arithmetic
原文链接:我的个人博客原题链接:1088 Rational Arithmetic考点 分数化简、最大公因数思路 这个题目难度不是很大,主要是比较繁琐。主要的任务就是对分数化为真分式,在化简的过程中涉及到求最大公因数。另外值得注意的是,题目中已经说明了数据都是长整型的。因此这里都需要用long long来接收。在判断分数正负时,不要直接使用m*n,这样会溢出,要注意代码...原创 2020-02-03 21:23:46 · 106 阅读 · 0 评论 -
PAT 1023 Have Fun with Numbers
原文链接:我的个人博客原题链接1023 Have Fun with Numbers考点 大整数运算思路 要求给定一个k位的数字,判断它的两倍是否是原来k的数的另一种排列。首先题目中说k可能有20位,因此即使用长整型也是没有办法表示的,何况还要乘以2.因此这里涉及到大整数的加法。判断2倍之后的数是否为原来k个数的排列,也就是再问:原来的数和二倍之后的数是否由相同的数字组成...原创 2020-02-03 21:22:16 · 82 阅读 · 0 评论 -
PAT 1095 Cars on Campus
原文链接:我的个人博客原题链接1095 Cars on Campus考点思路 这个题目真的是神烦哦。半夜做真的容易秃发。搞不清楚一个车你要进进出出几次……冷静下来理一理思路。题目中说:进和出都是配对的。只有进没有出的进是无效的,同样的只有出没有进的出也是无效的。这样来说,假如我有一辆A9的车,记录显示8点进入,9点进入,10点进入,下午四点离开。那么合法的时间段就是上午十点到...原创 2020-02-03 21:20:56 · 124 阅读 · 0 评论 -
PAT1110 Complete Binary Tree (25分)
原文:我的个人博客原题链接1110 Complete Binary Tree (25分)考点 二叉树思路 判断是否为完全二叉树这个题目让我想到了这一道题 。有机会大家可以去看一下,里面是利用二叉树的层次遍历解决。这里将使用相同的方法,但是稍微改进了一下。输入的节点序列可能是两位数,我刚开始用char来记录。。要不然3、4、5测试点永远过不去。代码#inclu...原创 2020-02-02 16:40:52 · 156 阅读 · 0 评论 -
PAT 1109 Group Photo (25分)
原文链接:我的个人博客原题链接1109 Group Photo (25分)思路 题目的大概意思是,给定每个人的身高,你给他们安排位置。要求前排比后排矮。每一排最高的人占中间位置(题目给了)其余的人按身高依次在在最高的人左右排列。首先给这些人按升高从高到矮排序,再按要求依次输出每一行。代码#include <iostream>#include <vec...原创 2020-02-02 16:39:36 · 270 阅读 · 0 评论 -
PAT1116 Come on! Let’s C
原文:我的个人博客原题链接1116 Come on! Let’s C思路 题目已经按名次给定每个同学ID。用map<string,int>m来存储每个同学获得的称号。第一名表示为1,排名为素数排名的记为2,其余的记为3.并在查询的过程中,将已经查询的记为4.当然没有出现的ID默认值即为0.代码#include <bits/stdc++.h>us...原创 2020-02-01 21:32:48 · 136 阅读 · 0 评论 -
PAT1117 Eddington Number
原文链接:我的个人博客原题链接1117 Eddington Number思路 对输入的里程数从大到小进行排序。题目要求找到最大的天数E,且E天的里程数均大于E。因此从大到小,去找最大的E.对照我的代码。v[i]即是当天的里程数,ans表示当前找到的E,如果v[i]>ans+1,那么答案天数就应该再加加,也就是ans++。代码#include <bits/st...原创 2020-02-01 21:31:39 · 87 阅读 · 0 评论 -
PAT 1112 Stucked Keyboard
原文:我的个人博客原题链接1112 Stucked Keyboard思路 用map<char,int>m记录那些每次都出现了k次的字符。注意在题目的例子中s不是,是因为s并不是每一次都出现了k次,所以即使有时候出现了连续k个s也不算。所以遍历输入的字符串是,统计每一个字符每一次出现的频率。当有一次出现了不是以k次连续出现时,就将map对应的m值置为-1,这样就相当于把...原创 2020-02-01 21:29:59 · 142 阅读 · 0 评论 -
PAT1113 Integer Set Partition
原文:我的个人博客原题链接1113 Integer Set Partition思路 题目要求把一个集合分成两个集合,要求两个集合的个数相差最小并且两个集合和相差最大。先将这个集合从小到大排序,然后前一半是一个集合,后一半是一个集合。代码#include <bits/stdc++.h>using namespace std; int main(){ ...原创 2020-02-01 21:29:04 · 126 阅读 · 0 评论 -
PAT 1121 Damn Single
原文链接:我的个人博客原题链接1121 Damn Single与之相似的题目有1149 Dangerous Goods Packaging (25分)思路 用map<string,string>记录每个人的伴侣。用has<string,int>记录在场的人的,在场则记为1,不在场默认为0。之后遍历,判断该人的伴侣是否在场,如果不在场则将他归为damn s...原创 2020-02-01 12:54:45 · 177 阅读 · 0 评论 -
PAT1122 Hamiltonian Cycle (25分)
原文链接:我的个人博客原题链接1122 Hamiltonian Cycle (25分)考点 图论思路 该题是需要让你判断输入的那些顶点是否可以构成哈密顿环,需要满足一下条件1. 输出的顶点总数是n+1,其中第一个顶点和最后一个顶点相同2. 每前后两节点要相连3. 所有节点均要出现代码#include <bits/stdc++.h>usi...原创 2020-02-01 12:52:20 · 150 阅读 · 0 评论 -
PAT1123 Is It a Complete AVL Tree (30分)
原文链接:我的个人博客原题链接 1123 Is It a Complete AVL Tree (30分)考点 AVL树、层次遍历思路 这个题目难度还是比较大的。在此之前你应该明白如何对AVL进行旋转的调整,请查看我的这篇文章:平衡二叉搜索树AVL及其c++实现,当然写的不是很详细。如果你从未接触过,还是自行百度。具体的解题步骤1. 构造AVL树,涉及到LL型RR型...原创 2020-02-01 12:50:54 · 136 阅读 · 0 评论 -
PAT 1127 ZigZagging on a Tree (30分)
原文链接:我的个人博客原题链接 PAT 1127 ZigZagging on a Tree (30分)考点 树,树的遍历思路 给定树的中序和后序序列,要求按Z字形层次输出,偶数层从右往左,奇数层从左往右遍历。1. 根据中序和后序序列建树2. tree用来存放树的结构。tree[index][0]和tree[index][1]分别表示,在后序序列post中下标为in...原创 2020-01-31 13:52:34 · 144 阅读 · 0 评论 -
PAT1126 Eulerian Path (25分)
原文链接:我的个人博客原题链接 1126 Eulerian Path (25分)考点 图、连通子图数思路 根据题意。每个顶点度均为偶数的图具有欧拉回路。只有两个顶点为奇数(其余为偶数)的具有欧拉路径。否则为非欧拉图值得注意的是,这一切的前提是,该图是连通图,因此必须先用dfs求图的连通子图数。代码#include <bits/stdc++.h>...原创 2020-01-31 13:51:25 · 130 阅读 · 0 评论 -
PAT 1125 Chain the Ropes
原文链接:我的个人博客原题链接 PAT 1125 Chain the Ropes思路 以下思路来自柳神博客 题目大意:给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。给定N段绳子的长度,你需要找出它们能串成的绳子的...原创 2020-01-31 13:50:18 · 107 阅读 · 0 评论 -
PAT 1124 Raffle for Weibo Followers
原文链接:我的个人博客原题链接 1124 Raffle for Weibo Followers思路 用map容器记录对应昵称是否已经被抽到奖。如果抽到过,则顺位给下一位。代码#include <bits/stdc++.h>using namespace std; int main(){ int m,n,s; cin>>m&...原创 2020-01-31 13:48:59 · 84 阅读 · 0 评论 -
PAT 1135 Is It A Red-Black Tree
原文链接:我的个人博客原题链接 PAT 1135 Is It A Red-Black Tree考点 树思路 红黑树需要满足的条件。树的根节点是黑色 红色节点的两个左右节点均是黑色 每个路径的黑色节点个数相同因为红黑树本身的特性,是特殊的二叉查找树,因此,前序序列即是插入的序列。代码#include <bits/stdc++.h>usi...原创 2020-01-29 14:20:18 · 88 阅读 · 0 评论 -
PAT 1134 Vertex Cover (25分)
原文链接:我的个人博客原题链接 PAT 1134 Vertex Cover (25分) (25分)考点 图论思路 为了判断的方便,将边根据输入的顺序进行编号。用e存放每个顶点相关的边。在每一次查询中,用set容器存放每次查询的所有节点相关的边。最后只要判断set容器的大小和该图总边数的大小是否相同即可得出每次查询的结果。代码#include <bits...原创 2020-01-29 14:18:21 · 141 阅读 · 0 评论 -
PAT 1133 Splitting A Linked List
原文链接:我的个人博客原题链接 PAT 1133 Splitting A Linked List考点 链表思路 题目要求将负数全部放到非负数的前面。对于非负数,将[0,k]的数放到>k的前面。只要遍历list1,先加将负数push_back到list2中,再将list1中[0,k]的push_back到list2,最后将list1中大于k的数push_back进...原创 2020-01-29 14:17:14 · 128 阅读 · 0 评论 -
PAT1132 Cut Integer (20分)
原文链接:我的个人博客原题链接 PAT1132 Cut Integer (20分)考点 字符串处理,字符串数字转换思路 将一个整数Z,切分成长度为len/2的两个部分A和B。再判断Z是否能整除A*B。代码#include <bits/stdc++.h>using namespace std; int sti(string s){ i...原创 2020-01-29 14:15:48 · 108 阅读 · 1 评论 -
PAT 1138 Postorder Traversal
原文链接:我的个人链接原题链接 PAT 1138 Postorder Traversal考点 树,树的遍历思路 这题就是很简单的根据树的前序序列和中序序列得到后序序列代码#include <bits/stdc++.h>using namespace std;vector<int>pre,in,post;int n;void g...原创 2020-01-28 13:59:27 · 94 阅读 · 0 评论 -
PAT 1137 Final Grading
原文链接:我的个人博客原题链接 PAT 1137 Final Grading考点 结构体;排序思路 函数sti,用于将学生姓名与自定义的id号进行对应。根据题目输入,初始化任务点、平时分和期末分。最后根据合格的要求(任务点不少于200,最后得分在60-100),将符合要求的学生push_back进入ans中。再根据题目要求,自定义排序规则。最后输出即可。代码...原创 2020-01-28 13:58:09 · 83 阅读 · 0 评论 -
PAT 1136 A Delayed Palindrome
原文链接:我的个人博客原题链接 PAT 1136 A Delayed Palindrome考点 字符串处理;大整数加法思路 题目要求一个数和它的逆序数进行相加得到一个新的数,判断得到的数是否为回文数。重复这个操作,直到得到回文数。要求在十次操作之内完成。题目给定的数是<=1000位,因此这里不能用普通的加法,必须要使用字符串来表示数字,并实现大数加法。代码如下代...原创 2020-01-28 13:56:18 · 97 阅读 · 0 评论 -
PAT 1139 First Contact
原文链接:我的个人博客原题链接 PAT 1139 First Contact考点 图论思路不能用int来接收,需要用字符串。0001会被自动变为1,-0000和0000都是0,不带符号。 字符串长度相等,即是相同的性别 A在找C时,C不能为B C在找D时,D不能为A 这里用到了将字符串转为对应的自定义编号。func函数 用vector<node>v...原创 2020-01-28 13:54:32 · 220 阅读 · 0 评论 -
PAT1140 Look-and-say Sequence
原文链接:我的个人博客题目描述Look-and-say sequence is a sequence of integers as the following:D, D1, D111, D113, D11231, D112213111, …where D is in [0, 9] except 1. The (n+1)st number is a kind of description...原创 2020-01-27 18:04:58 · 307 阅读 · 0 评论