一步一步通关PAT甲级

PAT甲级官网

注:在牛客网刷10道题或者官网上签到,可省50元报名费。

12月份刷PAT得了93分,7分败在不细心上,本应该getline的时候,却用了cin来获取输入。

了解到目前疫情期间,浙江各个学校进行疫情管理,大家最好提前了解清楚。

感悟

刷过PAT后,最大的感触就是细心、细心、再细心。
PAT甲级到底还是一场测验,而不是比赛,所以上面的题目在你掌握知识点之后都变得不是那么难。
甚至可以从1小时一道题,缩减到10~20分钟一道,思路理顺的话,1小时交卷是一点问题没有。
但是,被一些小细节卡住的话,3小时可能都不够用,所以在日常的练习中,细心!细心!细心!
养成习惯后,会对后面的考试有很大帮助。
大家如果遇到不懂的题目,可以翻看下面题解。

然后有些同学遇到不懂的题,总是会习惯性的查看答案,看懂了之后,下次遇到还是不会做。
这里给支个招,查看答案是可以的,但是查看之后,请将题目抄写一遍,不看答案再写一遍。
只要做到这些,相信大家大家都能取到很好的成绩。共勉~

前言

PAT题官网总共有155题,其中不是每道题都有刷的价值。在描述题型的时候,我会给出一个推荐星数(无<经典<1星<2星<3星),如果时间比较急的话,可以优先刷高星的题目(高星的题目要么很有营养(难),要么常考题)。

目前1天更新4道题吧。讲解可能不会太细,在刷完第一遍之后,会给大家整理一下。
持续更新中。。。

编程环境

这里我推荐Dev C++。
个人在平时是Dev C++和Code Block混用的。
两者各有优点和缺点,Dev C++的调试和自动补全不如Code Block方便简洁, 而Code Block缺点则是在处理字符串时,类似to_string的函数无法使用(需要修改配置,但考场没这个条件)。
综上,推荐大家还是使用Dev。
什么?你想用vs?其实也可以,比较慢就是了。

题型汇总

从文件中获取输入
PAT网络测试中会设置ONLINE_JUDGE的宏,所以在本地调试的时候加入一下代码,即可在本地时从文件中读入数据,在网络测试中则不会。

#ifndef ONLINE_JUDGE
freopen("data.txt", "r", stdin);
#endif // ONLINE_JUDGE

题解中基本都包含这个语句,要想纯粹使用命令行输入,可将该代码去除。
不然,则要保证在程序所在文件下有 data.txt 文件(保存着输入的文本)。

知识点

double和float的printf输入输出

  • 输入:%lf 对应double , %f 对应float
  • 输出:都为 %f
  • 获取一整行数据
string a;
getline(cin, a);
  • 输入空格分割的整行数据:
while(cin >> tkey){
    key[tkey].insert[id];
    char c = getchar();
    if (c == '\n') break; ///终止条件,很重要
}

常见错误

遇到问题不要怕,消除问题的最好办法就是微笑着面对他,奥…(有点上头)
这里会有在调试过程中出现的问题,类似内存溢出、命令行没有输出之类。

注意

  • 但你通过多个案例(没有全对)时,请先确定是否有些特殊情况你没有考虑到,然后再纠结代码的问题。
  • 不要忘记 using namespace std;
  • 审题要注意从0开始,还是从1开始
  • 检查() 和 []
  • 没有结果, 且运行时间变长,考虑循环越界
  • 需要的数据直接输出直接从题目中复制粘贴过来,防止自己打错
  • 高效率的方法没想到时,穷举也是一种方式。能得到大部分分。
  • 终端一个输出没有就报错时,要么没写&, 要么JUDGE写错, 要么越界

参考

  • 晴神的《算法笔记》
  • 柳神的Github

推荐刷题路线

题目总表

  • 1001 A+B Format (20)
  • 1002 A+B for Polynomials (25分)
  • 1003 Emergency (25分) 推荐指数:经典
  • 1004 Counting Leaves(30) 推荐指数:经典
  • 1005 Spell it right(20)
  • 1006 Sign in and Sign out(25)
  • 1007 Maximum Subswquence Sum (25分) 推荐指数:1星
  • 1008 Elevator (20分)
  • 1009 Product of Polunomials(25)推荐指数:经典
  • 1010 Radix(25) 推荐指数:2星
  • 1011 World Cup Betting(20)
  • 1012 The Best Rank(25)推荐指数:1星
  • 1013 Battle Over Cites(25) 推荐指数:经典
  • 1014 Waiting in line(30) 推荐指数:2星
  • 1015 Reversible Primes (20分) 推荐指数:2星
  • 1016 Phone Bills (25分) 推荐指数:2星
  • 1017 Queueing at Bank (25分)
  • 1018 Public Bike Management (30分) 推荐指数:2星
  • 1019 General Palindromic Number (20分)
  • 1020 Tree Traversals (25分) 推荐指数:2星
  • 1021 Deepest Root (25分) 推荐指数:3星
  • 1022 Digital Library (30分)
  • 1023 Have Fun with Numbers (20分)
  • 1024 Palindromic Number (25分)推荐指数:1星
  • 1025 PAT Ranking (25分)推荐指数:经典
  • 1026 Table Tennis (30分) 推荐指数:1星
  • 1027 Colors in Mars (20分)
  • 1028 List Sorting (25分)
  • 1029 Median (25分)
  • 1030 Travel Plan (30分)
  • 1031 Hello World for U (20分) 推荐指数:1星
  • 1032 Sharing (25分)
  • 1033 To Fill or Not to Fill (25分)推荐:1星
  • 1034 Head of a Gang (30分) 推荐:1星
  • 1035 Password (20分)
  • 1036 Boys vs Girls (25分)
  • 1037 Magic Coupon (25分)
  • 1038 Recover the Smallest Number (30分) 推荐:2星
  • 1039 Course List for Student (25分)
  • 1040 Longest Symmetric String (25分) 推荐:两星
  • 1041 Be Unique (20分)
  • 1042 Shuffling Machine (20分)
  • 1043 Is It a Binary Search Tree (25分) 推荐:3星
  • 1044 Shopping in Mars (25分) 推荐:2星
  • 1045 Favorite Color Stripe (30分)推荐:2星
  • 1046 Shortest Distance (20分) 推荐:1星
  • 1047 Student List for Course (25分)
  • 1048 Find Coins (25分)
  • 1049 Counting Ones (30分) 推荐:1星
  • 1050 String Subtraction (20分)
  • 1051 Pop Sequence (25分) 推荐:2星
  • 1052 Linked List Sorting (25分) 推荐:1星
  • 1053 Path of Equal Weight (30分) 推荐:经典
  • 1054 The Dominant Color (20分)
  • 1055 The World’s Richest (25分)
  • 1056 Mice and Rice (25分) 推荐:2星
  • 1057 Stack (30分) 推荐:2星
  • 1058 A+B in Hogwarts (20分)
  • 1059 Prime Factors (25分) 推荐:2星
  • 1060 Are They Equal (25分) 推荐:2星
  • 1061 Dating (20分)
  • 1062 Talent and Virtue (25分)
  • 1063 Set Similarity (25分)
  • 1064 Complete Binary Search Tree (30分) 推荐:3星
  • 1065 A+B and C (64bit) (20分) 推荐:1星
  • 1066 Root of AVL Tree (25分) 推荐:3星
  • 1067 Sort with Swap(0, i) (25分) 推荐:2星
  • 1068 Find More Coins (30分) 推荐:3星
  • 1069 The Black Hole of Numbers (20分) 推荐:1星
  • 1070 Mooncake (25分)
  • 1071 Speech Patterns (25分) 推荐:1星
  • 1072 Gas Station (30分) 推荐:3星
  • 1073 Scientific Notation (20分) 推荐:1星
  • 1074 Reversing Linked List (25分) 推荐:1星
  • 1075 PAT Judge (25分)
  • 1076 Forwards on Weibo (30分) 推荐:2星
  • 1077 Kuchiguse (20分)
  • 1078 Hashing (25分) 推荐:1星
  • 1079 Total Sales of Supply Chain (25分) 推荐:经典
  • 1080 Graduate Admission (30分)
  • 1081 Rational Sum (20分)
  • 1082 Read Number in Chinese (25分) 推荐:1星
  • 1083 List Grades (25分)
  • 1084 Broken Keyboard (20分)
  • 1085 Perfect Sequence (25分)
  • 1086 Tree Traversals Again (25分) 推荐指数:1星
  • 1087 All Roads Lead to Rome (30分) 推荐指数:1星

你可能感兴趣的:(PAT,算法,c++)