2018PAT春季考试小结

  • 暑假找工作,第一次考PAT,其实去年冬天就想试试水的,但年底开题+开组会,最终还是没报名。等到快放寒假了加上一个春节的时间,想着再家里看能刷刷题么,结果无数次的实验还是证明了一件事,那就是对于我,在家里休想学习。过完春节3月6号到了学校,其实离18号考试也就只剩12天了,我的基础,也只是之前在leetcode上刷过200题而已,然而在PAT官网上只刷了14道,每一道都花了很长时间才过的,慢慢的熟悉了写输入输出,却因为Java这门语言实在太慢,几乎每次都超时,可以得到的分都得不到,都怀疑还要不要坚持考PAT了。可是简历上依然是一片空白!既然选择了远方就不要放弃吧,主要是特别想看看自己的算法水平究竟怎么样,所以开学了就报名了,于是就天天都在牛客网上和官网上刷PAT真题了,真的有时候会怀疑,为什么大一的时候没有好好学c语言,因为自己java比较熟练,所以一直不敢转到自己只有一点点老底的c,况且时间也所剩无几了,只有扛着java硬上了。陆陆续续的刷过了不少题,我发现在努力让java程序跑的更快的路上我还是学到了不少东西的,比如ACM大神的BufferedReader读输入,StringTokenizer替换spilite等,但如果题目故意有个大数据测试点那么你还是认命吧,超时就是超时。前前后后刷过了60多题吧,主要是一直参考柳婼 の blog她的博客,每一道题她都有解答和分析,而且都基本是我见过的最好的方法,所以真的学习了不少!只恨自己吸收的太慢,理解的不够。
  • 离考试还有5天的时候开始做模拟套题,在规定的考试时间计时答题,第一次85,第二次97分,第三次57,第四次和第五次都是做到一半就崩溃了,真的不会啊。后来都开始安慰自己,8月再考一次吧,这次就当试手了,做到怀疑人生大概如此吧,就是除了算法题做什么都可以,哪怕是让我去看论文?考试前两天不写代码了,主要是看看其他我没刷过的题型,然后看看别人的解答,我发现自己对于dijkstra算法还是很不熟悉,就多看了些图的题,真的难的题,你看了,理解了,你基本还是会在心里说,如果遇到这题,我真的不会做,深搜吧,大不了超时。考试当天说下午1点半,为了怕困,我选择睡一上午不起来,真的下午我会习惯性困啊!提早2小时到了北工大,正好是吃饭的点,就和一陌生哥们借了下卡吃了个饭,完了就去计算中心等着了。

  • 因为去太早了,那里的老师说可以在一楼的机房自由上机,我进去看了下,打开任何一个系统都没有eclipse,我当时就慌了,心想考场不会也是这样吧,不过还好有netbeans,不过我也从没用过啊,于是赶紧网上百度下netbeans里怎么跑java项目,不过后来才发现我多虑了。

  • 1点半准时开考,1点28才摸到我的机子,心想下一次我一定要抢到一个考前的位置早点进机房,前面没带身份证的哥们你太墨迹了。进机房二话不说打开eclipse写我的读输入类Read用它替代Sacnner,这个会耗费我4分钟左右。但对界面不太熟悉,其实只要在当前界面点击进入考题就可以的,但我刚进去没听到这一句,于是最后过了好几分钟才问明白老师怎么进入题目页面。

  • 第一道题是look and say,简单题,我花了20分钟才搞定,对机房的键盘,椅子等太不熟悉,写代码也一直出错,状态还在调整。这里最需要提出来的是,考试时的OJ界面,提交了代码后显示正在测评,可这个界面停在这里就不动了,我去,在平时官网上刷题时体检完很快会弹出测评结果的啊,而且测评只要5ms不是?我当时一边苦苦等待它自动跳转,一边招手找老师看是不是电脑的问题,可是老师不理我,电脑也不理我,于是我就想右上角有个刷新点一下看看吧,一点才发现全正确,可惜这耗费了我快2分钟,简直笨死了我,后面一美女都估计都在嘲笑我了吧,哎。接下来做到第二题,PAT成绩排名打印,我这才进入状态,题目很简单,一次就过了几个点,剩下的两个点超时,我想100分是肯定是拿不到了,做完第二题3小时已经花了1个小时了,第三题是图论题,我感觉不难,但一提交中间两个点错了,我想待会再来查吧,于是就继续做,此时才过1个半小时,最后一个是求BST树中任何两个节点的最小公共父节点,并不难啊,很快就写完代码过了算例,一看果然后面2个点超时,还有个点出了错。此时还有一个小时!我心想还有这么多时间,那可得仔细好好查查,结果后面一个小时都在找错,却只把第四道题的2分的错找出来了,第三题的错始终找不到,而超时的我又无能为力,于是考试结束我才离开,总觉得很不甘心,那个错了的两个点有6分,如果我换成c,那么这次成绩就是94分了,比77分好看的多了啊,8月份再来考一次啊!如果到时候我还有这份执念的话….总之这就是第一次PAT考试经历,算对得起这10多天的刷题经历了吧。
  • 最后再重申一句,考PAT不要用Java!!!
  • 附上考完后登录邮箱传回来的我的源码:

No-1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;public class Main {public static void main(String[] args) throws IOException {Read.init(System.in);String s = Read.next();int n = Read.nextInt();char c;StringBuilder sb = new StringBuilder();int num;for (int i = 0; i < n - 1; i++) {c = s.charAt(0);num = 1;sb = new StringBuilder();for (int j = 1; j < s.length(); j++) {if (s.charAt(j) != c) {sb.append(c);sb.append(num);c = s.charAt(j);num = 1;} else {num++;}}sb.append(c);sb.append(num);s = sb.toString();}System.out.println(s);}}class Read {static BufferedReader br;static StringTokenizer st;static void init(InputStream in) {br = new BufferedReader(new InputStreamReader(in));st = new StringTokenizer("");}static String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(br.readLine());}return st.nextToken();}static int nextInt() throws IOException {return Integer.parseInt(next());}
}

No-2

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;public class Main {public static void main(String[] args) throws IOException {Read.init(System.in);int n = Read.nextInt();String id, school;int score;Map<String, Node> map = new HashMap<>();for (int i = 0; i < n; i++) {id = Read.next();score = Read.nextInt();school = Read.next().toLowerCase();if (map.containsKey(school)) {Node node = map.get(school);node.num++;if (id.charAt(0) == 'A') {node.a += score;} else if (id.charAt(0) == 'B') {node.b += score;} elsenode.t += score;} else {Node node = new Node(school);if (id.charAt(0) == 'A') {node.a += score;} else if (id.charAt(0) == 'B') {node.b += score;} elsenode.t += score;map.put(school, node);}}List<Node> list = new ArrayList<>(map.values());Node pre = null;for (int i = 0; i < list.size(); i++) {Node node = list.get(i);node.wei = (int) (node.b / 1.5 + node.a + node.t * 1.5);}Collections.sort(list);for (int i = 0; i < list.size(); i++) {Node node = list.get(i);if (i == 0) {node.ran = 1;pre = node;} else if (node.wei == pre.wei) {node.ran = pre.ran;} else {node.ran = i + 1;pre = node;}}System.out.println(list.size());for (int i = 0; i < list.size(); i++) {Node temp = list.get(i);System.out.println(temp.ran + " " + temp.name + " " + temp.wei + " " + temp.num);}}static class Node implements Comparable<Node> {String name;int wei, num, ran;int a, b, t;Node(String n) {name = n;num = 1;}@Overridepublic int compareTo(Node node) {if (wei != node.wei)return node.wei - wei;else if (num != node.num)return num - node.num;elsereturn name.compareTo(node.name);}}}class Read {static BufferedReader br;static StringTokenizer st;static void init(InputStream in) {br = new BufferedReader(new InputStreamReader(in));st = new StringTokenizer("");}static String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(br.readLine());}return st.nextToken();}static int nextInt() throws IOException {return Integer.parseInt(next());}
}

No-3

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;public class Main {static boolean[][] edg = new boolean[205][205];static int N;public static void main(String[] args) throws IOException {Read.init(System.in);int n = Read.nextInt(), ne = Read.nextInt();N = n;for (int i = 0; i < ne; i++) {int u = Read.nextInt(), v = Read.nextInt();edg[u][v] = true;edg[v][u] = true;}int k = Read.nextInt();List<Integer> list = new ArrayList<>();for (int i = 0; i < k; i++) {int num = Read.nextInt();list.clear();for (int j = 0; j < num; j++) {list.add(Read.nextInt());}int r = check(list);if (r == 1) {System.out.println("Yes");} else if (r == -1) {System.out.println("Not a Clique");} else if (r == 2) {System.out.println("Not Maximal");}}}private static int check(List<Integer> list) {for (int i = 0; i < list.size() - 1; i++) {int u = list.get(i);for (int j = i + 1; j < list.size(); j++) {if (!edg[u][list.get(j)])return -1;}}Set<Integer> set = new HashSet<>(list);for (int i = 1; i <= N; i++) {if (!set.contains(i)) {boolean f = true;for (int j = 0; j < list.size(); j++) {if (!edg[i][list.get(j)]) {f = false;break;}}if (f)return 2;}}return 1;}}class Read {static BufferedReader br;static StringTokenizer st;static void init(InputStream in) {br = new BufferedReader(new InputStreamReader(in));st = new StringTokenizer("");}static String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(br.readLine());}return st.nextToken();}static int nextInt() throws IOException {return Integer.parseInt(next());}
}

No-4

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;public class Main {static boolean f = false;public static void main(String[] args) throws IOException {Read.init(System.in);int M = Read.nextInt(), N = Read.nextInt();Node head = null;for (int i = 0; i < N; i++) {int temp = Read.nextInt();head = insert(head, temp);}for (int i = 0; i < M; i++) {int u = Read.nextInt(), v = Read.nextInt();int k1 = find(head, u), k2 = find(head, v);if (k1 == -1 || k2 == -1) {if (k1 == -1 && k2 == -1) {System.out.printf("ERROR: %d and %d are not found.\n", u, v);} else if (k1 == -1) {System.out.printf("ERROR: %d is not found.\n", u);} else {System.out.printf("ERROR: %d is not found.\n", v);}} else {if (u == v) {System.out.printf("%d is an ancestor of %d.\n", u, v);continue;} else if (u > v) {int temp = u;u = v;v = temp;f = true;}help(head, u, v);}}}private static int find(Node head, int u) {if (head == null)return -1;if (head.val == u)return 1;else if (head.val > u)return find(head.left, u);elsereturn find(head.right, u);}private static void help(Node head, int u, int v) {if (head == null)return;if (head.val == u || head.val == v) {if (head.val == u) {System.out.printf("%d is an ancestor of %d.\n", u, v);} elseSystem.out.printf("%d is an ancestor of %d.\n", v, u);return;} else if (head.val < u) {help(head.right, u, v);} else if (head.val > v) {help(head.left, u, v);} else {if (f)System.out.printf("LCA of %d and %d is %d.\n", v, u, head.val);elseSystem.out.printf("LCA of %d and %d is %d.\n", u, v, head.val);return;}}private static Node insert(Node head, int temp) {if (head == null)return new Node(temp);if (temp > head.val) {head.right = insert(head.right, temp);} elsehead.left = insert(head.left, temp);return head;}static class Node {int val;Node left, right;Node(int val) {this.val = val;}}}class Read {static BufferedReader br;static StringTokenizer st;static void init(InputStream in) {br = new BufferedReader(new InputStreamReader(in));st = new StringTokenizer("");}static String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(br.readLine());}return st.nextToken();}static int nextInt() throws IOException {return Integer.parseInt(next());}
}

接下来好好休息几天该搞科研了…比较是马上要毕业了啊(哭…),不过还是要把c语言好好看看了!!

2018-PAT春季考试小结相关推荐

  1. 2018 PAT春季模拟 库洛值

    库洛值 Case Time Limit: 200 MS (Others) / 400 MS (Java)       Case Memory Limit: 256 MB (Others) / 512  ...

  2. 西南大学网络教育学院计算机答案,西南大学网络与继续教育学院课程《数字信号处理》2018年春季大作业机考 答案.doc...

    西南大学网络与继续教育学院课程<数字信号处理>2018年春季大作业机考 答案 - PAGE 2 - 西南大学网络与继续教育学院课程考试试题卷 类别:网教 专业:电气工程及其自动化 2018 ...

  3. 【渝粤教育】国家开放大学2018年春季 3912T★汽车底盘构造与维修 参考试题

    试卷代号:3912 (中央广播电视大学)2018年春季学期"开放专科"期末考试 汽车底盘构造与维修试题 2018年7月 一.单项选择题(下列各题的备选答案中,只有一个选项是正确的, ...

  4. 【渝粤教育】国家开放大学2018年春季 4996T水土保持技术 参考试题

    试卷代号:4996 (中央广播电视大学)2018年春季学期"开放专科"期末考试 水土保持技术试题 2018年7月 一.选择填空(每空3分,共30分) 1.水土保持技术主要包括水土保 ...

  5. 【渝粤教育】国家开放大学2018年春季 4992T农村文化建设 参考试题

    试卷代号:4992 (中央广播电视大学)2018年春季学期"开放专科"期末考试 农村文化建设 试题 2018年7月 一.单项选择题(每题3分,共30分) 1."观乎天文, ...

  6. 【渝粤教育】国家开放大学2018年春季 3897T商务英语1 参考试题

    试卷代号:3897 (中央广播电视大学)2018年春季学期"开放专科"期末考试 商务英语1 试题 2018年7月 注 意 事 项 一.将你的学号.姓名及分校(工作站)名称填写在答题 ...

  7. 【渝粤教育】国家开放大学2018年春季 3896T人文英语1 参考试题

    试卷代号:3896 (中央广播电视大学)2018年春季学期"开放专科"期末考试 人文英语1 试题 2018年7月 注 意 事 项 一.将你的学号.姓名及分校(工作站)名称填写在答题 ...

  8. 【渝粤教育】国家开放大学2018年春季 3894T理工英语1 参考试题

    试卷代号:3894 (中央广播电视大学)2018年春季学期"开放专科"期末考试 理工英语1 试题 2018年7月 注 意 事 项 一.将你的学号.姓名及分校(工作站)名称填写在答题 ...

  9. 2018年春计算机教学计划,2018年春季教学计划表

    作为一名教师,不能因自己以往工作中的优异成绩而骄傲,而更应该多的是一份压力.一份责任.为将接下来的工作做好工作计划和学习计划.以下是由出国留学网小编为你带来的"2018年春季教学计划表&qu ...

  10. 【渝粤教育】国家开放大学2018年春季 4972T农业项目投资 参考试题

    试卷代号:4972 (中央广播电视大学)2018年春季学期"开放专科"期末考试 农业项目投资 试题(开卷) 2018年7月 一.单项选择题(在各题的备选答案中,只有1项是正确的,请 ...

最新文章

  1. 认识下PHP如何使用 phpmailer 发送电子邮件
  2. 【六一儿童节】回忆一下“孩子们的游戏”!(码农版)
  3. 键盘I/O中断调用(INT 16H)和常见的int 17H、int 1A H
  4. 一条 SQL 语句在 MySQL 中如何被执行的?
  5. python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...
  6. iQOO Pro 5G评测:配置彪悍定价亲民 成功拉低5G手机准入门槛
  7. 论文笔记--知识表示学习研究进展-2016
  8. JAVA 数组,(java核心技术 卷1)
  9. mysql_TCL语言(事务)
  10. matlab猜数字游戏程序,matlab 猜数字小游戏
  11. 红帽认证系统管理员 ― RHCSA
  12. 各银行支付/各种支付平台/php对接支付接口心得/php h5支付接口对接
  13. 视觉的力量,如何利用视频和社交媒体讲述品牌故事
  14. 自动化运维工具puppet学习笔记之基础篇
  15. MLX90614各类型芯片总结
  16. 一套最有效的商业模式,老板贷款80万开火锅店,开业就回本?
  17. Day10【LeetCode每日一题】781. 森林中的兔子
  18. 我收集的CS地图mod制作网址
  19. SparkStreaming动态读取配置文件
  20. 壹佰大米时代公司研究报告

热门文章

  1. 总结数据库连接失败等问题
  2. 白鹭引擎 android9,【安卓】手把手教你Egret引擎一键发布华为快游戏
  3. HTTP协议报文头部结构和Web相关工具
  4. 实型变量的定义和应用
  5. windows10怎么卸载计算机,Win10怎么卸载声卡驱动?电脑声卡驱动怎么卸载?
  6. Vuex持久化,刷新,vuex-along最详细教程
  7. 将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中
  8. java中1字节(8位)_Java中基本数据类型占几个字节多少位
  9. sql小技巧之case when
  10. 51单片机间接寻址C语言,51单片机的寻址方式