PAT入门
PAT入门级的一些题目
tangobravo
此人不懒,但是也什么都没有写
展开
-
Codeup 八皇后 n皇后问题
题目:会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。 给出一个数b,要求输出第b个串...原创 2020-02-05 21:34:23 · 265 阅读 · 0 评论 -
Codeup pid 2044 神奇的口袋
问题描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (1 <= n...原创 2020-02-05 10:57:07 · 151 阅读 · 0 评论 -
PAT A1041 Be Unique (20分)
题目很简单,就是用hash来做。但是我的代码却在其中一个测试点失败了,检查了好几遍,逻辑是真的没问题啊-_-最后终于发现是最小序号的范围搞错了。//1041 Be Unique (20分)#include <cstdio>#include <iostream>using namespace std;int hashTable[10001][2] =...原创 2020-02-03 18:20:09 · 158 阅读 · 0 评论 -
PAT A1016 Phone Bills (25分)
整体思路是先读入数据,再将其进行排序,最后遍历进行配对输出。几个细节:1.结构体中struct records { char name[25]; int time[4];//month,day,hour,minute int state;//1 for online 0 for offline}rec[1010];用一个int型的state,1/0代表online和off...原创 2020-01-29 18:26:26 · 180 阅读 · 0 评论 -
PAT A1012 The Best Rank (25分)
题意:给三个分数CME,加上算出来的平均分(要四舍五入,测试了才发现的),4个分数对应有4个排名,给出他们的最好排名(聊以自慰嘛→_→),最后根据给出的查询编号,查询出他们的最好排名和对应学科,或者查无此人。AC代码://1012 The Best Rank (25分) https://pintia.cn/problem-sets/994805342720868352/problem...原创 2020-01-22 17:14:06 · 289 阅读 · 1 评论 -
PAT A1062 Talent and Virtue (25分)
题意:德才均大于及格线low的才进行排序,排序的人按种姓分为 :) sages-nobleman-fool man-trash对于人的类型的排序只需要在结构体中加入一个int type即可,通过这个数字来进行类型排序AC代码://1062 Talent and Virtue (25分) https://pintia.cn/problem-sets/9948053427208683...原创 2020-01-21 16:03:01 · 165 阅读 · 0 评论 -
PAT A1025 PAT Ranking (25分)
(推荐个截图神器,fireshotwin+shift+s并不好用,因为它不能截长图)自己做的和标准答案差不多,些微不同。几个出错的点:1.题目数量要求没看仔细,n个考场,每个考场m个考生,总人数我居然直接用m大小的数组存了。2.打印的时候,总人数count又是忘记打了,OJ显示所有答案错误,检查了半天才发现 ( ̄▽ ̄)"AC代码://A1025 PAT Ranking...原创 2020-01-21 11:59:21 · 287 阅读 · 0 评论 -
PAT A1082 Read Number in Chinese (25分)
题意:按照中文习惯读出9位的数字,首先一条规则,从低位开始按照每4位为一节,依次为个节,万节,亿节。明白了这条规则这题就算做了40%。先转置字符串,用到left和right两个游标,首先第一个while将两个游标定位到最高节,然后第二个while每次让right--,直到left==right,说明到了节尾了,该输出节单位了。输出之后,让right--到下一节头,left跳到下一节尾,开始下一...原创 2020-01-20 20:41:23 · 134 阅读 · 0 评论 -
PAT A1077 Kuchiguse (20分) 关于g++编译器无法使用gets的解决方法
1.换成gcc编译器(由于使用了bool类型我还加入了stdbool.h)2.fgetschar * fgets ( char * str, int num, FILE * stream );3.使用c++的getline函数参考链接C++:cin、cin.getline()、getline()的用法AC代码:(gcc编译器)//1077 Kuchiguse (20分...原创 2020-01-20 11:40:53 · 609 阅读 · 0 评论 -
PAT B1024 科学计数法 (20分)
题意:首先浮点数部分必有1位小数,指数部分必为整数。其次要求保留所有有效位。我将其拆分为2个字符串保存,左边的浮点数部分(去掉小数点)num,右边的指数部分exp。均包含符号。首先输出最前面的符号,为正不处理。n为exp的绝对值。然后根据指数的正负:若为负数,共计输出n个0。若为正数,区分为n>=valid_digit和n<valid_digit。前者无小数点,后者需要在适当的...原创 2020-01-16 21:33:02 · 206 阅读 · 0 评论 -
PAT B1014 A1061 福尔摩斯的约会
1.题意首先要理解正确。题意是相同位置的相同字符,而不是遍历s1,对于每一个s1的元素,搜索s2中符合要求的相同字符。第一遍我这样做,非常复杂。但是我也觉得这题没有表达清楚,有点头疼。2.隐藏的信息必须要解读出来,比如题中的week,是具体到A-G而不是仅仅简单解读为大写字母。做题的过程中发现若用s[0][i]>='A'&& s[0][i]<='G'代替isup...原创 2020-01-15 22:18:49 · 191 阅读 · 0 评论 -
PAT A1058 A+B in Hogwarts
进制转化,这道题应该是题目中所给范围有问题,给出galleon的范围是10^7,但是用int存的话第三个测试点会不通过,改成long long就好了,很明显是有问题的。方法1:全部转化为knut进行计算(需要注意溢出问题,int+int需要用long long来存)//1058 A+B in Hogwarts (20分)#include <cstdio>int mai...原创 2020-01-15 21:33:13 · 140 阅读 · 0 评论 -
PAT A1027 Colors in Mars
有点意思,简单的进制转化,但是实际上有坑每两位作为一个单位进行处理,每两个都是倒序的,也就是说,15 43 71---》21 43 65,其实只要分三组存储,分开输出即可//1027 Colors in Mars (20分)#include <cstdio>char x[14] = { "0123456789ABC" };void convert(int *n, i...原创 2020-01-12 08:19:48 · 171 阅读 · 0 评论 -
Codeup1928 日期差值
比较简单的一题,但是有很多细节,首先就是年份的输入处理,非常巧妙y1 = time1 / 10000, m1 = time1 % 10000 / 100, d1 = time1 % 100;还有闰年的处理,按照我的逻辑代码需要很多行,而按照第二种处理方法,也就是数组多打几个元素而已,却大大缩短了代码量,还不容易出错,值得学习。1.我的代码//问题 A: 日期差值//最直接的模...原创 2020-01-11 09:46:44 · 193 阅读 · 0 评论 -
PAT A1009
多项式相乘,2个最多1000次的多项式相乘,结果用result[2001]来保存一开始以为段错误是把double数组都开在main里面导致的,然而放在main外面还是会有两个测试点段错误。//我的解答,会有2个测试点段错误#include <cstdio>double a[1001], b[1001], result[2001];int main(){ doub...原创 2020-01-09 10:01:10 · 333 阅读 · 0 评论