![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT
S atur
要变成萤火虫~
展开
-
PAT甲级 - 1019 General Palindromic Number(b进制的回文数判断 | 测试点2、4)
十进制的n转换成b进制的数时,每次取余时得到的数可能大于9,因此用string存结果时会无法通过2、4两个测试点。:给出十进制的数字n,判断其在b进制下是否依旧是一个回文数字。原创 2022-08-24 15:11:31 · 286 阅读 · 1 评论 -
PAT甲级 1016 Phone Bills(时间差)
Link题意:远程电话的收费是按照每分钟来计费的,现在告诉你一天24小时中每分钟的收费标准,以及n条通话记录,试求出每个人该月的消费账单。只有开始记录没有结束记录的通话不计费,反之亦然。保证所有消费记录在同一个月,且至少含有一条满足计费的账单记录。输出是需要输出用户姓名,月份,每一条记录的开始结束时间于计费,总计费。按照用户名升序输出账单。思路:常规的一个时间差计算题,但是该题细节较多,也有许多坑点。先按照用户名升序,再按照时间升序来排序。再依次处理每次完整的通话。刚开始是考虑前缀和直接获取时间段对应的计费原创 2022-06-03 22:27:29 · 221 阅读 · 0 评论 -
PAT甲级 - 1015 Reversible Primes (进制转换&素数判断)
Link题意:判断一个数N是否是D进制内的翻转素数,即其在D进制内翻转后依旧是素数。思路:思路很简单,但是题意有点容易被误解,即当前N为十进制数,首先N必须是质数;再者其转换成D进制数后翻转,再变成十进制数后依旧得是素数才满足。代码实现:...原创 2022-06-03 16:26:36 · 257 阅读 · 0 评论 -
PAT甲级 - 1014 Waiting in Line (银行排队问题 | queue+模拟)
Link题意:银行里由N个窗口,每个窗口前可容纳M个人等待;N*M之后的人需要在黄线以外等待寻找最短且序号最小的窗口进入等待;现告诉你K个人办理业务需要的时间time_cost,试问其中Q个人的离开时间为多少。已知银行8:00开始接待客户,17:00停止接待。思路:显而可见,前N*M个人分别按照1~N,1~N……的顺序进入窗口,之后就是黄线内的N*M个人离开一个,黄线外的客户进入该窗口。设置N个queue模拟N个窗口,定义统一是时间线timeLine,每次寻找N个窗口头部耗时最短的用时minn_cost,将原创 2022-06-03 14:08:56 · 242 阅读 · 0 评论 -
PAT甲级 - 1013 Battle Over Cities(删点判连通块数量)
Link题意:给你一张地图,n个城市、m条路,现在问你毁掉某个城市相连的所有路后,最少还需要修建多少条路才能使得剩下的所有城市联通。一个k组测试询问。思路:相当于删除联通块中某个点剩下联通块个数-1的问题。思路1:并查集,思路二:bfs遍历。需要注意的是上限1e3个点,那么最多有1e6个边,容量不够大最后一个测试点无法通过。并查集代码:#include<bits/stdc++.h>#define int long long#define endl '\n'using na原创 2022-06-03 13:54:26 · 321 阅读 · 0 评论 -
PAT甲级 - 1010 Radix(思维+二分)
Link题意:大概意思就是,tag==1,则N1为radix进制的数;tag==2,则N2为radix进制的数。试问另一个数为多少进制的数才能使得N1==N2,无解输出"Impossible"。思路:基本思路很简单,直接枚举另外一个数的进制即可,期间在进行进制的转换时需要注意许多细节。但如果直接枚举的话将有个测试点(1分)无法通过,不难看出其实进制的取值我们就可以通过二分来查询,其二分的下限即是另一个数的最大位数值maxx+1,上限即位radix进制数的十进制数值+1。(如果误将Impossible原创 2022-05-24 17:06:32 · 344 阅读 · 0 评论 -
PAT甲级 - 1012 The Best Rank(坑点)
Link题意:大概题意就是每个学生都有自己的序号id,以及C语言场景c,数学成绩m,英语成绩e,以及平均成绩a。题目会输出n个学生的id以及三门主科的成绩,气候跟寻m次询问,问某id的学生最佳成绩排名及科目名称。思路:思路其实很简单,分四个数组存放每科所有学生的成绩再排个序即可。但需要注意两个坑点:1.在选取学生最高排名时必须按照a,c,m,e的优先级取最高排名科目(即每个成绩都排名第三,但必须输出 3 A)。2. 相同分数排名相同,但下一分数不会递补(即现在有 90、90、89的三个成绩,则气排名原创 2022-05-24 17:07:51 · 332 阅读 · 0 评论 -
PAT甲级 - 1007 Maximum Subsequence Sum
Link题意:没什么毛病,就是求一个最大子序列和的问题。思路: 两种种思路吧——暴力、dp。暴力就直接利用前缀和求个最大差值,不过还是很意外1e4的这个复杂度按理说是会超时的,但这个题可能数据比较水竟然400ms的限制也能过。暴力代码:#include<bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 1e5+10;int n, a[N], pr原创 2022-05-23 21:40:18 · 190 阅读 · 0 评论 -
PAT甲级 - 1002 A+B for Polynomials
Link题意: 多项式加法,分别输入两行多项式,每一行 k 对<系数 指数>的格式,要求输出相加后的多项式(不好含指数为0的)。思路:将同系数的指数相加筛选非零项再对系数进行降序输出即可。AC代码:#include<bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 1e5+10;int k, a;double b;vec.原创 2022-05-21 17:05:09 · 157 阅读 · 0 评论 -
PAT甲级 - 1001 A+B Format
Link题意:输出A+B的固定格式结果(每三位数含一共逗号)。思路:直接利用整型变量相加得到的结果再to_string()一下,再每三个位置插入一个逗号即可。AC代码:#include<bits/stdc++.h>using namespace std;const int N = 1e5+10;int a, b;signed main(){ cin >> a >> b; int c = a+b, cnt = 0;.原创 2022-05-21 16:54:57 · 129 阅读 · 0 评论