
PAT甲级刷题小记
珍珠贝贝
这个作者很懒,什么都没留下…
展开
-
【机器学习数学基础-线性代数】1.3 解线性方程组
【回顾】 线性方程组的一般形式:a11x1+...+a1nxn=b1...am1x1+...+amnxn=bma_{11}x_1+...+a_{1n}x_n=b_1\\...\\a_{m1}x_1+...+a_{mn}x_{n}=b_{m}a11x1+...+a1nxn=b1...am1x1+...+amnxn=bm其中的aij,bia_{ij},b_iaij,b...原创 2020-04-14 21:44:37 · 934 阅读 · 0 评论 -
【PAT 甲级】A1024 Palindromic Number (25分)
大数加法,一遍AC,再无其他。#include <bits/stdc++.h>using namespace std;struct bigNum{ char s[1024]; int digit;};bigNum add(bigNum x){ bigNum y; int temp,c=0; for(int i=x.digit-1;i>=0;i--) y....原创 2020-04-14 13:23:44 · 185 阅读 · 0 评论 -
【PAT 甲级】A1023 Have Fun with Numbers (20分)
考察大数运算,不过用unsigned long long也可以做…我嫌有一点麻烦就没用(毕竟比起求每一位是几,我还是更愿意算一个简单的破乘法)#include <bits/stdc++.h>using namespace std;struct bigNum{ char s[32]; int digit;};int d1[10];int d2[10];int main...原创 2020-04-12 09:31:39 · 167 阅读 · 0 评论 -
【PAT 甲级】A1022 Digital Library (30分)
学会使用map、set这些构件~坑点1:传参时使用引用,否则速度太慢会超时——直接影响最后一个测试点(4)坑点2:注意ID输出时 %07d ——影响后两个测试点(3和4)#include <bits/stdc++.h>using namespace std;map<string,set<int> > tmap,amap,kmap,pmap,ymap;...原创 2020-04-08 21:54:49 · 207 阅读 · 0 评论 -
【PAT 甲级】A1021 Deepest Root (25分)
【BFS层次遍历+last变量】一遍AC~思路和之前的一样,使用BFS+last变量进行层次遍历就可以求出深度。遍历以每个结点做根的情况就可以顺利地得到一个深度啦!其他的就是基本操作了,不多b。参考之前写过的一道题的思路:PAT1004#include <bits/stdc++.h>using namespace std;int N;vector<int> v[...原创 2020-04-08 15:57:51 · 124 阅读 · 0 评论 -
【PAT 甲级】A1019 General Palindromic Number (20分)
目测没坑点吧,就是数组不知道应该开多大#include <bits/stdc++.h>using namespace std;int num[1000010];int main(void){ int n,b,p=0; scanf("%d%d",&n,&b); while(n!=0) { num[p]=n%b; p++; n/=b; } ...原创 2020-04-05 21:52:30 · 94 阅读 · 0 评论 -
【PAT 甲级】A1018 Public Bike Management (30分)
【Dijkstra+DFS】总共存在三个标尺——最短路径、PBMC派出去的自行车数、PBMC收回的自行车数,同时还需要求解路径。可以说是非常麻烦了qaq坑点:所有车站在调整过程中必须一步到位,不能用路径靠后的结点来调整路径靠前的结点。(然原题目里好像并没有说明这件事,不过这个坑点只值5分)非常好的一组测试点(源自《算法笔记》)://Input10 4 4 54 8 9 00 1 1...原创 2020-04-05 21:38:35 · 235 阅读 · 0 评论 -
【PAT 甲级】A1017 Queueing at Bank (25分)
测试点5:边界测试点。且要注意到达时间在17:00之前,但服务时间在17:00之后的客户依旧是有效客户!(算法笔记对这里的理解有错误)测试点3/4:注意输出格式!你妈我想骂人了并且这么做了!气死我了!最后的结果并不是直接取天棚…使用普通的除法保留就可以了!!我为什么要多此一举!!我测试了好几个小时!!居然是这个原因!!气死我了【思路:恶心的模拟题+优先队列】网络上关于优先队列的版本已经有很多...原创 2020-04-05 13:30:06 · 257 阅读 · 0 评论 -
【PAT 甲级】A1016 Phone Bills (25分)
【恶心的模拟题】必须细心,否则很难AC,可以看看这位总结的测试点,非常好用,帮我挑出来一处错误。#include <bits/stdc++.h>using namespace std;int toll[24];int dayCost=0;map<string,int> m;struct node{ bool online; string time;};...原创 2020-04-04 12:00:36 · 139 阅读 · 0 评论 -
【PAT 甲级】A1015 Reversible Primes (20分)
小坑点:1不是素数哦(可能也不是坑点,是我太菜了…)#include <bits/stdc++.h>using namespace std;bool isPrime(int n){ if(n==1) return false; for(int i=2;i*i<=n;i++) if(n%i==0) return false; return true;}int c...原创 2020-03-26 09:53:09 · 107 阅读 · 0 评论 -
【PAT 甲级】A1014 Waiting in Line (30分)
【版本一:暴力模拟,19分】都给孩子模拟哭了…什么破题啊烦!#include <bits/stdc++.h>using namespace std;#define MAX 0x3fffffffstruct node{ int t; int finish_time=-1;};int wq[11][21]; //window-queue:the id of the ...原创 2020-03-26 09:29:35 · 181 阅读 · 1 评论 -
【PAT 甲级】A1013 Battle Over Cities (25分)
思路:BFS求连通图的个数就可以啦~#include <bits/stdc++.h>using namespace std;vector<int> v[1010];bool visited[1010];int city,cnt;void BFS(int n){ visited[n]=true; for(int i=0;i<v[n].size();i+...原创 2020-03-25 21:39:17 · 132 阅读 · 0 评论 -
【PAT 甲级】A1012 The Best Rank (25分)
想都不想直接暴力做不嫌麻烦,反正有复制粘贴#include <bits/stdc++.h>using namespace std;struct node{ int id; int c,m,e,a; int rc,rm,re,ra;};node stu[2020];bool cmpc(node n1,node n2){ return n1.c>n2.c;...原创 2020-03-24 12:21:28 · 97 阅读 · 0 评论 -
【PAT 甲级】A1011 World Cup Betting (20分)
我爱水题!#这真的是PAT的题目吗?##include <bits/stdc++.h>using namespace std;double odds[3][3];double m[3];int idx[3];char c[3]={'W','T','L'};int main(void){ for(int i=0;i<3;i++) { m[i]=0;idx[...原创 2020-03-24 11:14:29 · 195 阅读 · 1 评论 -
【PAT 甲级】A1010 Radix (25分)
【版本一:暴力模拟,24分】测试点七运行超时…改一下…#include <bits/stdc++.h>typedef long long LL;using namespace std;int cti(char c) //char to int{ if(c>='0'&&c<='9') return c-'0'; else return...原创 2020-03-24 11:03:59 · 199 阅读 · 0 评论 -
【PAT 甲级】A1009 Product of Polynomials (25分)
第一次尝试的时候忘记了1000*1000=1000,000所以数组要开大一点…别的就没什么了#include <bits/stdc++.h>using namespace std;struct node{ int exp; double coeff;};node a[16];node b[16];double ans[1000010];int main(voi...原创 2020-03-24 09:41:27 · 134 阅读 · 0 评论 -
【PAT 甲级】A1008 Elevator (20分)
沉迷于写水题无法自拔#这真的是PAT题目吗?##include <bits/stdc++.h>using namespace std;int main(void){ int n,pre=0,sum=0,next; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&next); if(ne...原创 2020-03-24 09:19:49 · 114 阅读 · 0 评论 -
【PAT 甲级】A1006 Sign In and Sign Out (25分)
水题#这是PAT的题吗##include <bits/stdc++.h>using namespace std;struct person{ string id; int h,m,s;};int cti(char a,char b) //char to integer{ return (a-'0')*10+(b-'0');}bool cmp(person p...原创 2020-03-24 09:10:56 · 111 阅读 · 0 评论 -
【PAT 甲级】A1005 Spell It Right (20分)
下次一定好好读题…这种题竟然做了十分钟0.0#include <bits/stdc++.h>using namespace std;string str[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};char n[110];int main(void){ int s...原创 2020-03-23 16:24:23 · 88 阅读 · 0 评论 -
【PAT 甲级】A1004 Counting Leaves (30分)
【版本一:层次遍历思想,22分】思想:开一个vector数组,记录每个节点的子节点;然后做一次层次遍历就好了。问题是如何区分两个不同的层次呢?这里我引入了一个last变量来记录每一个层次最后一个节点的值。这样只需要不停地更新last就好啦~测试点一死活过不去,提示段错误!我要被折磨死了#include <bits/stdc++.h>using namespace std;ve...原创 2020-03-23 16:08:09 · 166 阅读 · 0 评论 -
【PAT 甲级】A1002 A+B for Polynomials (25分)
#这真的是PAT题吗?#没有最无聊,只有更无聊!坑点提示:如果系数为0,则不视为有效项。如果这么说的话,其实都不用开一个结构体数组…一个double数组就秒杀了。#include <bits/stdc++.h>using namespace std;struct node{ bool exist=false; double coeff=0;};node poly[1...原创 2020-03-23 15:05:59 · 94 阅读 · 0 评论 -
【PAT 甲级】A1042 Shuffling Machine (20分)
之前做的忘了,好像是非常简单的一道模拟题。#include <bits/stdc++.h>using namespace std;char c[5]={'S','H','C','D','J'};void transfer(int n){ if(n==54) { printf("J2"); return; } if...原创 2020-03-23 14:27:20 · 130 阅读 · 0 评论 -
【PAT 甲级】A1001 A+B Format (20分)
这道题是PAT的题吗?= =#include <bits/stdc++.h>using namespace std;int num[10];int main(void){ int a,b,sum,p=0; scanf("%d%d",&a,&b); sum=a+b; if(sum<1000&&sum>-1000) print...原创 2020-03-23 14:25:17 · 104 阅读 · 0 评论 -
【PAT 甲级】A1057 Stack (30分)
【版本一:分块,17分】我又一次陷入了寻找bug的陷阱里…#include <bits/stdc++.h>using namespace std;int hsh[100010];int block[320];int main(void){ int n; char str[16]; scanf("%d",&n); memset(hsh,0,sizeof(hs...原创 2020-03-21 22:59:04 · 106 阅读 · 0 评论 -
【PAT 甲级】A1068 Find More Coins (30分)
思路:动态规划…这个题做得我好痛苦看了题解才发现原来只需要逆序做DP,就可以保证选出来的解是顺序的了…#include <bits/stdc++.h>using namespace std;int coin[10010];int dp[10010][110];int ans[10010];bool cmp(int a,int b){ return a>b;}...原创 2020-03-21 12:07:28 · 166 阅读 · 0 评论 -
【PAT 甲级】 A1040 Longest Symmetric String (25分)
经典动态规划问题,不解释了#include <bits/stdc++.h>using namespace std;char s[1024];int dp[1024][1024];int main(void){ fgets(s,1024,stdin); int length=1024,ans=1; while(s[length]!='\n') length--; s[...原创 2020-03-08 11:59:11 · 111 阅读 · 0 评论 -
【PAT 甲级】A1045 Favorite Color Stripe (30分)
思路: 动态规划时间复杂度: O(ML)O(ML)O(ML)状态转移方程的求解设fvrt数组记录颜色序列;strp数组记录纸袋颜色;dp[i]表示以i为结尾的最大长度。基于此,可对每一个fvrt[j]进行遍历,求得当前的状态转移方程为dp[i]={dp[i−1]+1,if fvrt[j]=strp[i]max{dp[i−1],dp[i]},if fvrt[j]≠str...原创 2020-03-08 11:30:49 · 138 阅读 · 0 评论 -
【PAT 甲级】A1007 Maximum Subsequence Sum (25分)
我尼玛窒息了,为什么PAT每次都要搞这些奇奇怪怪的小坑点,友好一点不行吗???再一次被题坑了,他要的输出是数字而不是索引index!!!!!坑死了气!简单的动态规划,不多说了#include <bits/stdc++.h>using namespace std;int num[10010];int dp[10010];int main(void){ int n,m,i...原创 2020-03-07 22:18:12 · 125 阅读 · 0 评论 -
【PAT 甲级】A1003 Emergency(25分)
【版本一:无脑Dijkstra,10分】错误原因:题意理解错误,第一个输出应该输出路径条数,而不是weight!!所以只过了一个错误点…我跪了#include <bits/stdc++.h>using namespace std;const int INF=0x3fffffff;int g[512][512],men[512],path[512],m[512];bool v...原创 2020-03-06 13:48:26 · 160 阅读 · 0 评论 -
【PAT 甲级】A1076 Forwardon Weibo(30分)
再次庆祝一遍过~太爽啦!思路:无脑BFS…毫无特色。#include <bits/stdc++.h>using namespace std;vector<int> net[1024];int visited[1024];int cnt=0,L=0;void BFS(int p,int layer){ queue<int> q; for(int...原创 2020-03-06 11:54:51 · 93 阅读 · 0 评论 -
【PAT 甲级】A1034 Head of a Gang(30分)
坑点提示:数组应该开到2000+,因为总共可能有1000条记录…否则会有一个测试点提示段错误!思路:一个简单的DFS…没啥特殊的,一定一定要想好怎么保存权值…我是维护了一个边值记录和一个点值数组……我感觉Dev-C++没有函数提示这个是真的太坑啦,每次要想好长时间qwq#include <bits/stdc++.h>using namespace std;struct nod...原创 2020-03-05 20:41:07 · 148 阅读 · 0 评论 -
【PAT 甲级】A1098 Insertion or Heap Sort (25分)
把堆排序和插入排序复现一遍就好了。不过我个人认为的一个坑点是:对插入排序的处理要格外小心,要跳过对第一个点的插入排序才有可能拿到正确的结果。比如一个测试样例://Input43 4 2 13 4 2 1//Output他应该输出的是Insertion Sort2 3 4 1#include <bits/stdc++.h>using namespace std;...原创 2020-03-05 12:58:48 · 139 阅读 · 0 评论 -
【PAT 甲级】 A1107 Social Clusters (30分)
我想骂人了我他吗调了一晚上,第二天才发现,竟然在最后一步出岔子了。sort(cluster,cluster+1000,cmp);这条语句错了,应该是1001。我说怎么一直错四个测试点。结论:只要这道题错最后四个测试点的,都是因为这个1000!!【100%】,我之前看过一篇博文就是这里错的,没想到我在最后排序的时候错了!!!【版本一:无脑并查集,20分】【版本二:边界修订,AC30分】...原创 2020-03-05 11:40:06 · 141 阅读 · 0 评论 -
【PAT 甲级】A1066 Root of AVL Tree (25分)
一遍过~只要弄明白AVL树的构造过程,这个题还是很容易A掉的!没什么坑点。#include <bits/stdc++.h>using namespace std;struct node{ int key,height; node* left; node* right;};int num[21];int getHeight(node* nd){ if(!nd) ...原创 2020-03-04 14:08:12 · 110 阅读 · 0 评论 -
【PAT 甲级】A1043 Is It a Binary Search Tree(25分)
PAT坑点提示!(当然也可能是我太笨了qwq):定义全局变量的时候一定不要用index这个标识符,否则会提示编译错误!!原因貌似是用了#include <bits/stdc++.h>,这个头文件貌似已经定义了一些标识符,所以冲突了。当然我在Dev-C++上还是运行良好的…【版本一:没读明白题就做了,死得很惨,17分】代码不展示了,连给的样例测试点2都没过hhhh【版本二:这个题...原创 2020-03-04 09:46:27 · 221 阅读 · 0 评论 -
【PAT 甲级】A1053 Path of Equal Weight(30分)
【版本一:无脑DFS,27分,最后一个测试点提示段错误,一脸懵逼中】#include <bits/stdc++.h>using namespace std;struct Node{ int weight; int last; vector<int> next;};Node node[101];vector<vector<int> >...原创 2020-03-03 20:29:03 · 331 阅读 · 0 评论 -
【PAT 甲级】A1103 Integer Factorization(30分)
【版本一:DFS递归版本,有一个测试点超时,27分】虽然第一次尝试没有满分,但是超级无敌开心了!!第一次做PAT的压轴题,还好还好…#include <bits/stdc++.h>using namespace std;int tmp[512];int MAX=-1;int ans[512];bool flag=false;void DFS(int index,int ...原创 2020-03-03 09:42:38 · 406 阅读 · 0 评论 -
【PAT 甲级】A1091 Acute Stroke(30分)
一遍AC太爽啦!!难点:搞懂题意…我偷偷用了参考书上的题意翻译版本,因为我实在看不懂这个题干写的鬼文字…这要是考试不就凉了吗。。思想:无脑BFS,两个三维数组(一个存数据,一个存状态)#include <bits/stdc++.h>using namespace std;int core[64][1290][130];int visited[64][1290][130];...原创 2020-03-01 20:07:38 · 137 阅读 · 0 评论 -
【PAT 甲级】A1052 Linked List Sorting(25分)
【版本一:无脑模拟法(18分)】连给的条件都没用全…下次审题啊!!#include <bits/stdc++.h>using namespace std;struct node{ int address; int value; int next;};bool cmp(node a,node b){ return a.value<b.value;}nod...原创 2020-02-28 18:52:26 · 92 阅读 · 0 评论 -
【PAT 甲级】A1032 Sharing(25分)
超级无敌霹雳水的一道题,时间复杂度O(n)可解坑点:输出时要判断一下,可能不足五位数,需要你补齐这五位!#include <bits/stdc++.h>using namespace std;struct node{ char c; int next; bool flag;};node nd[100010];int main(void){ int n,n1,n...原创 2020-02-28 18:13:38 · 96 阅读 · 0 评论