PAT甲级渡劫专题
记录平时PAT刷题的心得
WUST_XIAO
这个作者很懒,什么都没留下…
展开
-
PAT(甲级)渡劫(二十八)-PAT Ranking
PAT(甲级)渡劫(二十六)-PAT Ranking题目大意:有n个考场,每个考场有若干数量的考生。现在给出各个考场中考生的准考证号与分数,要求将所有考生按分数从高到低排序,并按顺序输出所有考生的准考证号,排名,考场号以及考场内排名。很多排序题都会要求在排序之后计算出每个个体的排名,并且规则一般是:分数不同的排名不同,分数相同的排名相同但占用一个排位。对这种要求,一般需要在结构体类型定义...原创 2019-03-14 19:59:15 · 205 阅读 · 0 评论 -
PAT(甲级)渡劫(二十七)-Speech Patterns (25)
PAT(甲级)渡劫(二十七)-Speech Patterns (25)题目大意:分割字符串的用法+map映射给出input中出现次数最多的单词,如果次数相同,给出按字典序最小的。这里我用了自定义分隔符来读取字符串,方法如下:代码如下:#include <iostream>#include <cstdio>#include <algorithm>...原创 2019-02-27 20:11:09 · 161 阅读 · 0 评论 -
PAT(甲级)渡劫(二十六)-Find More Coins (30)
PAT(甲级)渡劫(二十六)-Find More Coins (30)算法思想:题意:从n个硬皮中选取方案,使得总和价值正好为m,如果有多种,方案为排列最小的那个。可以把硬币看成w=v(即容量=价值)的物品,现在要选取这些物品放入到容量为m的背包中,求能装的最大价值。如果最大价值恰好等于容量m,那么方案则是可行的,否则输出No Solution。由于要输出排列最小的方案,所以先将硬币...原创 2019-02-27 19:12:06 · 126 阅读 · 0 评论 -
PAT(甲级)渡劫(二十五)-Sort with Swap(0,*) (25)
PAT(甲级)渡劫(二十五)-Sort with Swap(0,*) (25)算法思想:贪心算法次数最少的方法,即:1.每次都将0与应该放置在0位置的数字交换即可。2.如果0处在自己位置上,那么随便与一个不处在自己位置上的数交换,重复上一步即可。拿样例举例:0 1 2 3 4 5 6 7 8 90:3 5 7 2 6 4 9 0 8 11:3 5 0 2 6 4 9 7 8 ...原创 2019-02-22 10:35:13 · 138 阅读 · 0 评论 -
PAT(甲级)渡劫(二十四)-Root of AVL Tree (25)
PAT(甲级)渡劫(二十三)-Root of AVL Tree (25)代码如下:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cmath&gt;using namespace std;struct TreeNode{ int val; TreeNode *left,*right; ...原创 2019-02-20 23:16:09 · 139 阅读 · 0 评论 -
PAT(甲级)渡劫(二十三)-A+B and C (64bit) (20)
PAT(甲级)渡劫(二十三)-A+B and C (64bit) (20)算法思想:因为A、B、C的大小为[-2^63, 2^63],用long long 存储他们的值和sum。接下来就是分类讨论:如果A > 0, B < 0 或者 A < 0, B > 0,sum不会溢出,直接和C判断比较即可。如果A > 0, B > 0,sum可能会溢出, 溢...原创 2019-02-20 22:20:41 · 130 阅读 · 0 评论 -
PAT(甲级)渡劫(二十二)-Complete Binary Search Tree(30)
PAT(甲级)渡劫(二十二)-Complete Binary Search Tree(30)代码如下:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;vector&gt;#include &lt;algorithm&gt;using namespace std;vector&原创 2019-02-20 21:50:59 · 122 阅读 · 0 评论 -
PAT(甲级)渡劫(二十一)-Set Similarity(25)
PAT(甲级)渡劫(二十一)-Set Similarity(25)代码如下:#include <iostream>#include <cstdio>#include <set>#include <vector>using namespace std;vector<set<int> > v; // 集...原创 2019-02-20 21:00:48 · 140 阅读 · 0 评论 -
PAT(甲级)渡劫(二十)-Are They Equal(25)
PAT(甲级)渡劫(二十)-Are They Equal(25)代码如下:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 200;char s1[maxn],s2[maxn];int n;void sol...原创 2019-02-19 21:03:43 · 110 阅读 · 0 评论 -
PAT(甲级)渡劫(十九)-Prime Factors(25)
PAT(甲级)渡劫(十九)-Prime Factors(25)代码如下:#include <iostream>#include <cstdio>#include <cmath>const int maxn = 60000;bool mark[maxn];int prime[maxn];int primeSize = 0;void ini...原创 2019-02-19 19:30:56 · 122 阅读 · 0 评论 -
PAT(甲级)渡劫(十八)-A+B in Hogwarts(20)
PAT(甲级)渡劫(十八)-A+B in Hogwarts(20)代码如下:#include <iostream>#include <cstdio>#include <bits/stdc++.h>using namespace std;int main(){ //freopen("in.txt","r",stdin); cha...原创 2019-02-19 16:37:13 · 129 阅读 · 0 评论 -
PAT(甲级)渡劫(十七)-Stack(30)
PAT(甲级)渡劫(十七)-Stack(30)题目大意:题意:有三种操作,分别是1.Push key:将key压入stack2.Pop:将栈顶元素取出栈3.PeekMedian:返回stack中第(n+1)/2个小的数(中位数)算法思想:分桶法的基本思路是分治,在一开始的暴力解法中,我们可以认为Count数组是一个大的桶,这个大的桶里有510^5个小桶,每个小桶能装一个数,在分...原创 2019-02-19 13:50:02 · 146 阅读 · 0 评论 -
PAT(甲级)渡劫(十六)-Mice and Rice(30)
PAT(甲级)渡劫(十六)-Mice and Rice(30)题目大意:题目意思是:n个人,每人手中拿着一个数字,然后按照k人一组进行比赛,谁的数大谁就赢,最后输出他们的排名输入说明:第一行是n,k,分别代表参赛人数和一个组的最大人数第二行是n个数据,比如这里,就是从0到10号参赛选手的手中的数字第三行是n个参赛选手的顺序,分组就是依据此来划分详细说明:11 3 //1...原创 2019-02-18 22:59:33 · 148 阅读 · 0 评论 -
PAT(甲级)渡劫(十五)-Graduate Admission(30)
PAT(甲级)渡劫(十五)-Graduate Admission(30)代码如下:#include <iostream>#include <cstdio>#include <algorithm>#include <vector>using namespace std;const int maxn = 40005;const ...原创 2019-02-18 21:59:32 · 175 阅读 · 0 评论 -
PAT(甲级)渡劫(十四)-Total Sales of Supply Chain(25)
PAT(甲级)渡劫(十三)-Total Sales of Supply Chain(25)题目大意:计算最小的层数与该层数上的叶子节点数目即可代码如下:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;vector&gt;#include &lt;cmath&gt;using names原创 2019-02-18 17:20:28 · 157 阅读 · 0 评论 -
PAT(甲级)渡劫(十三)-Hashing(25)
PAT(甲级)渡劫(十三)-Hashing(25)题目大意:题目要求用二次探测法(Quadratic probing)解决冲突代码如下:#include <iostream>#include <cstdio>using namespace std;int Hash[11024];bool isprime(int n){ if(n == 1)...原创 2019-02-18 16:28:09 · 128 阅读 · 0 评论 -
PAT(甲级)渡劫(十二)-Kuchiguse(20)
PAT(甲级)渡劫(十二)-Kuchiguse(20)题目大意:考察点:最长公共后缀,字符串处理代码如下:#include <iostream>#include <cstdio>using namespace std;string Kuchiguse(const string &line,const string &x){ i...原创 2019-02-18 13:48:41 · 164 阅读 · 0 评论 -
PAT(甲级)渡劫(十一)-Forwards on Weibo(30)
PAT(甲级)渡劫(十一)-Forwards on Weibo(30)题目大意:给出每个用户id关注的人,和转发最多的层数L,求一个id发了条微博最多会有多少个人转发,每个人只考虑转发一次。用BFS,同时每个节点要记录下所在的层数,由于只能转发一次,所以每个节点要用vis判断之前是否入过队列,不能重复入队。代码如下:#include <iostream>#includ...原创 2019-02-17 20:13:45 · 184 阅读 · 0 评论 -
PAT(甲级)渡劫(十)-Build A Binary Search(30)
PAT(甲级)渡劫(十)-Build A Binary Search(30)算法思想:首先在输入数据的时候就构造二叉树的结构,然后将输入的数据进行排序,将排序好的数字在中序遍历中赋值给构造好的二叉树,最后用层次遍历输出即可。代码如下:#include <iostream>#include <cstdio>#include <algorithm>...原创 2019-02-17 16:52:50 · 126 阅读 · 0 评论 -
PAT(甲级)渡劫(九)-Insertion or Heap Sort(25)
PAT(甲级)渡劫(九)-Insertion or Heap Sort(25)题目大意:题目就是给两个序列,第一个是排序前的,第二个是排序中的,判断它是采用插入排序还是堆排序,并且输出下一次操作后的序列。插入排序的特点就是,前面是从小到大排列的,后面就与原序列相同。堆排序的特点就是,后面是从小到大排列的最大的几个数p~n-1,前面第一位则是p-1。所以只要先按照插入排序的特点来判...原创 2019-02-17 14:38:41 · 171 阅读 · 0 评论 -
PAT(甲级)渡劫(八)-Deduplication on a Linked List(25)
PAT(甲级)渡劫(八)-Deduplication on a Linked List(25)代码如下:#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;struct node{ int address; int data; ...原创 2019-02-16 23:30:08 · 123 阅读 · 0 评论 -
PAT(甲级)渡劫(七)-Consecutive Factors
PAT(甲级)渡劫(七)-Consecutive Factors代码如下:#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(){ int n; scanf("%d",&n); int t = sqrt...原创 2019-02-16 22:08:08 · 204 阅读 · 0 评论 -
PAT(甲级)渡劫(六)-Cars on Campus(30)
PAT(甲级)渡劫(六)-Cars on Campus(30)题目大意:题意:给出n个车辆进出校园的记录,以及k个时间点,让你回答每个时间点校园内的车辆数,最后输出在校园内停留的总时间最长的车牌号和停留时间,如果不止一个,车牌号按字典序输出。几个注意点:1.如果一个车连续多次进入,只取最后一个2.如果一个车连续多次出去,只取第一个3.一个车可能出入校园内好几次,停留时间取总和...原创 2019-02-16 20:41:18 · 260 阅读 · 0 评论 -
PAT(甲级)渡劫(五)-The Largest Generation (25)
PAT(甲级)渡劫(五)-The Largest Generation (25)题目大意:就是统计一下每层的节点数,输出节点数最多的个数和对应的层数即可。算法思想:采用层次遍历代码如下:#include <iostream>#include <cstdio>#include <cstring>#include <queue>...原创 2019-02-16 17:16:49 · 118 阅读 · 0 评论 -
PAT(甲级)渡劫(四)-Acute Stroke(30)
PAT(甲级)渡劫(四)-Acute Stroke(30)题目大意:给定三维数组,0表示正常,1表示有肿瘤块,肿瘤块的区域>=t才算是肿瘤,求所有肿瘤块的体积和算法思想:这道题一开始就想到了dfs或者bfs,但当时看数据量挺大的,以为会导致栈溢出,所以并没有立刻写,想有没有别的办法。然而结果是,实在想不出别的办法了,所以还是尝试写写dfs、bfs。一开始先用了dfs,最后...原创 2019-02-16 14:07:45 · 135 阅读 · 0 评论 -
PAT(甲级)渡劫(三)-Highest Price in Supply Chain (25)
PAT(甲级)渡劫(三)-Highest Price in Supply Chain (25)题目大意:从root supplier开始,卖出比进货价多r%,假设除了root supplier,其余每个都只从一家店进货,给你供应链,求最大的零售价。给你供应链的总成员个数N(0,1,…,N-1),初始价格p,r,下一行给出第i个数表示第i个成员的supplier。root的为-1。输出...原创 2019-02-15 23:05:24 · 294 阅读 · 0 评论 -
PAT(甲级)渡劫(二)-All Roads Lead to Rome(30)
PAT(甲级)渡劫(二)-All Roads Lead to Rome(30)题目大意:在一个图中,寻找从杭州到罗马最短的路径,如果最短路径有多条,则需要求快乐值最多的,如果快乐值也一样多,则根据平均快乐值的多少进行取舍。输出最短路径的条数,花费,快乐值以及平均快乐值和路径算法思想:可以使用Dijstra算法先求出最短的代价,然后用深度优先搜索计算最短路径的条数以及最大的快乐值和平...原创 2019-02-15 18:40:59 · 294 阅读 · 0 评论 -
PAT(甲级)渡劫(一)-Public Bike Management
### PAT(甲级)渡劫(一)-Public Bike Management#### 题目描述:&amp;amp;amp;amp;gt; There is a public bike service in Hangzhou City which provides great convience to the tourists原创 2019-02-13 21:47:31 · 187 阅读 · 0 评论