PAT-A
EXECUTER_
ECUST ACMer.
展开
-
PAT A 1008
• 题目有一部电梯,停在0层(国外习惯0层开始),上行每层需要6s,下行每层需要4s,每层停留5s,现在给出一组request表示该电梯的任务,计算完成该request所需时间。• I/OSample Input:3 2 3 1Sample Output:41• 算法直接算,数据非常弱,O(n)。• 代码#include<cstdio>int main(){ int quest[1原创 2016-11-07 20:14:07 · 420 阅读 · 0 评论 -
PAT A 1036
题目给出n行学生的数据,每行数据表示一个学生格式为 姓名 性别 ID 分数,输出女生最高分的学生的姓名、ID、男生最低分的姓名、ID,以及这两个分数的差。I/OSample Input 1: 3 Joe M Math990112 89 Mike M CS991301 100 Mary F EE990830 95 Sample Output 1: Mary EE990830 Joe Ma原创 2016-12-02 15:18:13 · 466 阅读 · 0 评论 -
PAT A 1009
题目求两个多项式的积 输入格式为两行,每行第一个数表示这个多项式非零项的个数k, 接下来的每两个数据表示次数和该次数的系数,共k组。I/OSample Input 2 1 2.4 0 3.2 2 2 1.5 1 0.5 Sample Output 3 3 3.6 2 6.0 1 1.6算法由于k<=10,直接暴力求多项式系数,不必用什么矩阵了。但貌似C++里面有计算的STL,没去研究过。原创 2016-11-20 13:42:26 · 373 阅读 · 0 评论 -
PAT A 1048
题目你有n个硬币,n在105之内;然后给出这n个硬币的面值; 问能否用这n个硬币中的两个组成总价值m;若有多组解,m=a+b,输出a尽量小的。I/OSample Input 1: 8 15 1 2 8 7 2 4 11 15 Sample Output 1: 4 11 Sample Input 2: 7 14 1 8 7 2 4 11 15 Sample Output 2: No原创 2016-11-20 12:32:53 · 360 阅读 · 0 评论 -
PAT A 1029
题目给出两个递增数列,找出这两列数合并之后数列的中位数。 这么简单题目通过率只有0.2,一看就是有天坑的。 对中位数定义为奇数时为最中间的一位。偶数时为最中间的两个数的第一个数。 还有数据范围比较大。I/OSample Input 4 11 12 13 14 5 9 10 15 16 17 Sample Output 13算法做之前想了好几种数据结构,最后决定用数组直接扫描O(m+n)原创 2016-12-01 23:04:50 · 359 阅读 · 0 评论 -
PAT A 1035
题目为了区分不好识别的字符(l和1,0和O),有以下代替方案: replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. 输入每个ID和其密码,若这些密码不需要改进,输出 There is 1 account and no account is modified Or There are M accounts and no acco原创 2016-11-14 22:09:38 · 322 阅读 · 0 评论 -
PAT A 1027
题目地球人用六位数来表示颜色(RGB法),而火星人用13进制的6位数来表示颜色,输入三个0~168的十进制数,转换为三个2位的13进制数输出。I/OSample Input 15 43 71Sample Output#123456算法进制转换其实进制转换都谈不上,因为处理两位数的进制转换实在太简单了,没有小数,没有大数。 代码#include<cstdio>void convert(int c原创 2016-11-13 22:48:52 · 357 阅读 · 0 评论 -
PAT A 1001
• 题目输入a,b,计算a+b,结果表示为西式记法,即从右向左满三位添逗号“,”。• I/O略• 算法模拟+输入输出,change读入数,按照每位拆开储存到数组num里,满三位添加逗号,最后逆序输出num效率O(log n)• 代码#include<cstdio>#include<cstring>void change(long dig){ char num[15]; int原创 2016-11-07 19:41:30 · 333 阅读 · 0 评论 -
PAT A 1007
• 题目求n个数的最大子序列和,以及这个子序列开始和结束的数。如果套上一般的最大子序列函数,连续WA,都在于“这个子序列开始和结束的数”。 这告诉我们,要认真读题,思路对的话Wa一般都是边界和特殊情况,多调试。 题目中对特殊情况的解释: In case that the maximum subsequence is not unique, output the one原创 2016-11-11 22:17:43 · 545 阅读 · 0 评论 -
PAT A 1006
题目给出m个人的ID、进入房间和离开房间的时间,输出第一个进房间的人和最后一个进房间的人的IDI/OSample Input:3 CS301111 15:30:28 17:00:10 SC3021234 08:00:00 11:25:25 CS301133 21:45:00 21:58:40Sample Output:SC3021234 CS301133算法第一次做25pt的题,依然是一道水题原创 2016-11-08 21:51:34 · 363 阅读 · 0 评论 -
PAT A 1011
• 题目给出三组数据,每组三个数,计算(每组数最大值之积*0.65-1)。同时对每组数,最大值是第一个数输出W,最大值是第二个数输出T,最大值是第一个数输出L。• I/OSample Input1.1 2.5 1.71.2 3.0 1.6 4.1 1.2 1.1 Sample Output T T W 37.98• 算法就那样算,输入/输出题做了四道20ot的甲级题,总结原创 2016-11-08 19:49:13 · 375 阅读 · 0 评论 -
PAT A 1005
• 题意给出一个100位以内的数,计算出它每一位上的数之和,再按照从左到右的顺序,用英文字母表示出每一位例如I/O:12345,计算各位数和为15(1+2+3+4+5),用英文表示为one five。• I/OInput12345Outputone five• 算法没有算法,输入/输出题核心在于用数组表示十进制数据,O(n)。• 代码#include<cstdio>#includ原创 2016-11-07 23:19:38 · 335 阅读 · 0 评论 -
PAT A 1069
题目给出一个四位数,按照增序排列得到一个数a,按照降序排列得到一个数b,用b-a得到一个四位数,再将这个四位数进行这样的操作,直到得到6174或者0.I/OSample Input 1: 6767Sample Output 1: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174Sample原创 2016-11-20 20:54:59 · 376 阅读 · 0 评论