
PTA
文章平均质量分 64
二佳十
没有感情的敲代码机器
展开
-
PTA刷题日记02
1020 Tree Traversals (25 分)给定二叉树中序和后序写出层序遍历结果对于二叉树遍历,中序,前序或者中序,后序或者中序,层序可以构建一个独一无二的二叉树,其他情况不行本题代码:#include<bits/stdc++.h> #include<iostream>#include<vector>#include<algorithm>#include<queue>using namespace std;typede原创 2021-10-11 22:29:02 · 215 阅读 · 0 评论 -
PTA刷题日记03
1022 Digital Library (30 分)map处理题,注意点一是读取方式的处理是getline,只有这样才能读到空格,对字符串的读取方式要熟;注意点二是无论何种查询方式都是只需要输出id号,那么只需要将书名,作者等信息和id号做一个映射即可啦#include<bits/stdc++.h> using namespace std;map<string, set<string> >mp1, mp2, mp3, mp4, mp5;void print(原创 2021-10-11 22:28:53 · 227 阅读 · 0 评论 -
PTA刷题日记14
1140 Look-and-say Sequence (20 分)说实话,我觉得这个题目解释着实说的不清不楚(我觉得很多题都说的不清不楚,这个特别)就是下一个序列是对前一个序列中每一个连续的数字a连续了b次就写作ab,1次也算,字符串处理题搞清楚题意以后可以看到n很小,所以直接暴力即可#include<bits/stdc++.h>using namespace std;int main() { int n; string a, b; cin >> a >&g原创 2021-10-11 22:28:44 · 256 阅读 · 0 评论 -
PTA刷题日记04
1035 Password (20 分)这辈子没这么无语过的一道题,我一直错一个点,看了半天才发现还有单复数,真的你搁这搁这呢#include<bits/stdc++.h>using namespace std;vector<int> ans;string id[1005], pwd[1005];int main() { int n; cin >> n; for(int i = 0; i < n; i++) { bool f = 0; c原创 2021-10-11 22:28:05 · 279 阅读 · 0 评论 -
PTA刷题日记16
1153 Decode Registration Card of PAT (25 分)注意结果集是空的就要输出NA,所以三种查询都有可能会出现NA强烈注意某些集合,例如ans使用前一定要重新声明,否则会有一个超时,一个错误简洁一点的代码#include<bits/stdc++.h>using namespace std;struct node{ string id; int score; friend bool operator<(node a, node b) {原创 2021-10-11 22:27:57 · 237 阅读 · 0 评论 -
PTA刷题日记11
1103 Integer Factorization (30 分)带有多重剪枝的dfs,这些剪枝要记熟,有点类似切蛋糕的题,我觉得从大到小找应该比较快(其实题目也提示了应该找从大到小的序列比较好)剪枝情况元素不足k个但是p次方和已经比n要大了,直接返回后面的k-num个元素(num为当前已有的元素个数)全部取最大值仍然比n小,直接结束提前算好结果序列最大值可能的范围#include<bits/stdc++.h>using namespace std;vector<int原创 2021-10-11 22:27:32 · 363 阅读 · 0 评论 -
PTA刷题日记06
1055 The World’s Richest (25 分)这题真的很无聊,就一个排序罢了,简单提一下,结构体数组排序会超时,但是vector就不会了,还有一个限制年龄处理的方法,第1组数据不会超时,第2组数据超时,真的奇怪。#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 5;struct node{ int age, w; string name; friend bool operator <原创 2021-10-11 22:27:03 · 171 阅读 · 0 评论 -
PTA刷题日记07
1062 Talent and Virtue (25 分)没啥难点的排序,理解提议即可,分成四组,两歌分数都没过最低线的不计入排序#include<bits/stdc++.h>using namespace std;//const int N = 1e5 + 5;struct node{ int id, vir, tal, total; friend bool operator<(node a, node b) { if(a.total == b.total) {原创 2021-10-11 22:26:52 · 231 阅读 · 0 评论 -
PTA刷题日记12
1112 Stucked Keyboard (20 分)原创 2021-08-29 23:53:45 · 278 阅读 · 0 评论 -
PTA刷题日记13
1121 Damn Single (25 分)毫无优化的处理方式,依旧没超时。。。#include<bits/stdc++.h>using namespace std;vector<pair<int, int> > pa;set<int> ans;bool f[100005];int main() { int n, m; scanf("%d",&n); for(int i = 0; i < n; i++) { int a,原创 2021-08-29 23:52:10 · 237 阅读 · 0 评论 -
PTA刷题日记15
1144 The Missing Number (20 分)用一个map或者unordered_map即可,要注意可能这n个数正好从1排到n,所以遍历范围要扩大到n+1,不扩大会出错的有2,3,5三个测试点。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> mp;int main() { int n, a, cnt = 0, mi = n+1; scanf("%d",&n);原创 2021-08-29 22:15:25 · 215 阅读 · 0 评论 -
PTA刷题日记10
1092 To Buy or Not to Buy (20 分)记录第二个串中的字母是否都在第一个串中出现(数量需考虑)#include<bits/stdc++.h>using namespace std;int cnt[300];int main() { string a, b; cin >> a >> b; for(int i = 0; i < a.length(); i++) { cnt[a[i]]++; } int l = b.le原创 2021-08-29 22:15:15 · 413 阅读 · 0 评论 -
PTA刷题日记09
1082 Read Number in Chinese (25 分)字符串处理,要注意去除前置零和负号(虽然其实我没试不去除前置零会不会出错),但是去除前置零的过程中也可以顺便处理类似0000这样的字符串注意点:1.在万和亿单位间如果全是0,单位万就不用写了2.处理单位的方式0和其他数字要区分开,其判断数字非0再加入单位3.处理万和亿要单独处理4.连续的0只要放入第一个0,个位的0单独处理一些案例1010010 yi Bai ling yi Wan ling yi Shi100001原创 2021-08-29 22:14:54 · 252 阅读 · 0 评论 -
PTA刷题日记08
1075 PAT Judge (25 分)这题理解并不难,但是是一道很烦人的排序题,有很多需要注意的地方,稍有不慎就是错1.提交0分和提交-1不一样2.如果这个人被计入了ranklist那么提交-1显示就是0,只有没提交过的才是-3.拿了满分的题不要重复计算,否则排序出错4.如果你像我一样把初始设为-2,提交没成功设为-1,其他直接表示,注意计算total的时候如果去减-1或者-2都是错误的,必须减0垃圾代码如下#include<bits/stdc++.h>using names原创 2021-08-29 22:14:34 · 283 阅读 · 0 评论 -
PTA刷题日记05
1047 Student List for Course (25 分)没啥难的,就是一开始用map<int, set< string > >就超时了,如果set超时试试vector一般就行了,即vector< string > vec[N],而且string输入输出必须还成scanf,printf,不然也会超时。(一个很奇怪的点,一开始我用了一个map来进行映射,虽然后来发现完全是吃饱了撑的没事干,但是不知道为啥错了)#include<bits/stdc++.原创 2021-08-29 22:13:48 · 125 阅读 · 0 评论 -
PTA刷题日记01
1001 A+B Format (20 分)字符串处理,把整数转回字符串有简便方法需要记录,然后处理符号和逗号#include<bits/stdc++.h> using namespace std;void s2i(string s, int &n) { stringstream ss; ss<<s; ss>>n;}void i2s(string &s, int n) { stringstream ss; ss<<n;原创 2021-08-27 22:02:34 · 225 阅读 · 0 评论