
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 · 371 阅读 · 1 评论 -
PAT甲级 1016 Phone Bills(时间差)
Link题意:远程电话的收费是按照每分钟来计费的,现在告诉你一天24小时中每分钟的收费标准,以及n条通话记录,试求出每个人该月的消费账单。只有开始记录没有结束记录的通话不计费,反之亦然。保证所有消费记录在同一个月,且至少含有一条满足计费的账单记录。输出是需要输出用户姓名,月份,每一条记录的开始结束时间于计费,总计费。按照用户名升序输出账单。思路:常规的一个时间差计算题,但是该题细节较多,也有许多坑点。先按照用户名升序,再按照时间升序来排序。再依次处理每次完整的通话。刚开始是考虑前缀和直接获取时间段对应的计费原创 2022-06-03 22:27:29 · 291 阅读 · 0 评论 -
PAT甲级 - 1015 Reversible Primes (进制转换&素数判断)
Link题意:判断一个数N是否是D进制内的翻转素数,即其在D进制内翻转后依旧是素数。思路:思路很简单,但是题意有点容易被误解,即当前N为十进制数,首先N必须是质数;再者其转换成D进制数后翻转,再变成十进制数后依旧得是素数才满足。代码实现:...原创 2022-06-03 16:26:36 · 325 阅读 · 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 · 293 阅读 · 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 · 412 阅读 · 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 · 412 阅读 · 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 · 407 阅读 · 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 · 257 阅读 · 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 · 203 阅读 · 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 · 164 阅读 · 0 评论