pat专题

PAT-1039 到底买不买(20)(字符串的使用)

题目描述 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以

PAT-1028

题目描述 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入描述: 输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个

每日一题——Python代码实现PAT乙级1048 数字加密(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试  再次尝试 代码点评 代码结构 时间复杂度 空间复杂度 优化建议 我要更强 优化建议 完整代码及注释 时间复杂度和空间复杂度分析 进一步优化 哲学和编程思想 模块化

PAT-L1-020 帅到没朋友

L1-020 帅到没朋友 (20 分) 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),I

PAT-L1-011. A-B

这个题目很坑,同样的算法思路,C++秒过,java怎么也超时,给跪 L1-011. A-B 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你计算A-B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字

PAT-L1-010. 比较大小

L1-010. 比较大小 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 杨起帆(浙江大学城市学院) 本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数,其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连。 输入样例

PAT-L1-009. N个数求和

之前用java没跑出来,过了很久重新用python写了一遍跑出来了,原有的java的代码也没有删除,知道问题在哪里了,写在注意点里面 这道题目要考虑到细节 1.掌握求解最大公约数和最小公倍数的方法——辗转相除法 2.考虑最终的结果可能是负数的情况,应该先约分和变为整数和分数的情况后,再添加上符号 L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码

PAT-L1-008. 求整数段和

L1-008. 求整数段和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 杨起帆 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中-100<=A<=B<=100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的

PAT-L1-006. 连续因子

一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数N(1<N<231)。 输出格式: 首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列,其中因子按递增

PAT-L1-005. 考试座位号

L1-005. 考试座位号 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到

PAT-L1-003. 个位数统计

L1-003. 个位数统计 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。

PAT-L1-002. 打印沙漏

PAT刷题 备注:题目源自https://www.patest.cn/p/index#test L1-002. 打印沙漏 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***********

每日一题——4行Python代码实现PAT乙级1008 数组元素循环右移问题(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 ​编辑我的写法 代码功能 时间复杂度分析 空间复杂度分析 总结 我要更强 方法一:使用循环移位 方法二:使用Python的deque 方法三:使用列表切片和拼接 总结 哲学和编程思

PAT A1042. 洗牌机器

题目描述 有54张牌,编号为1~54,初始按编号从小到大排列。另外,这些牌按初始排列给定花色,即从左至右分别为13张S、13张H、13张C、13张D、2张J,如下所示: s1, S2,…., S13,H1, H2,…, H13,C1, C2,.…, C13,D1, D2,…, D13,J1, J2 接下来执行一种操作,这种操作将牌的位置改变为指定位置。例如有5张牌S3, H5, C1,D13,J

pat之月饼问题

题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第

pat 之德才论问题

题目描述 宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。 输入描述: 输入第1行给出3个正整数,分别为:N(<=105),即考生总数;L(>=60),为录取最低分数线,即德分和才分均不低

PAT B1018.锤子剪刀布

题目描述 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图3-1所示。    现给出两人的交锋记录,请统计双方的胜、平、负次数,并给出双方分别出什么手势的胜算最大。输入格式 第一行给出正整数N(≤10'),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第一个学母代表甲方,第二个字母代表乙方,中间

PAT 甲级 1095 Cars on Campus

PAT 甲级 1095 Cars on Campus #include <bits/stdc++.h>using namespace std;const int kMAXN = 10010;struct Car{char id[8];int time;char status[4];} all[kMAXN], valid[kMAXN];int valid_num = 0;map<st

PAT 甲级 1055 The World‘s Richest

PAT 甲级 1055 The World’s Richest 这道题一次AC,但是后来看《算法笔记·上机训练实战指南》中的解析,说由于M<100,所以每个年龄读入100个人,就可以不读入了,这样能显著提高时间,否则测试点二过不了。但是没有写这个预处理也过了,回去看了看时间是400ms,猜想应该是传参都用的是传引用调用,改成传值调用之后果然超时。 解析也是用传值调用写的,传引用不香吗。 #i

PAT甲级 1058 A+B in Hogwarts

PAT甲级 1058 A+B in Hogwarts #include<bits/stdc++.h>using namespace std;int main(){#ifdef LOCALfreopen("input.txt", "r", stdin);//freopen("output.txt", "w", stdout);#endiflong long sickle, galleon

PAT 甲级 1011 World Cup Betting

PAT 甲级 1011 World Cup Betting 简单模拟 #include<bits/stdc++.h>using namespace std;const double EPS=1e-7;int main(){double a,b,c,ans=1;for(int i=0;i<3;++i){cin>>a>>b>>c;if(a-b>-EPS&&a-c>-EPS) {co

PAT 甲级 1096 Consecutive Factors

PAT 甲级 1096 Consecutive Factors #include <bits/stdc++.h>using namespace std;int main(){#ifdef LOCALfreopen("input.txt", "r", stdin);#endifint num, max_len = -1, now_len = 0, beg = 0, now_beg;cin

PAT 甲级 1093 Count PAT‘s

#include <bits/stdc++.h>using namespace std;#define kMOD 1000000007int main(){#ifdef LOCALfreopen("input.txt", "r", stdin);#endifstring s;cin >> s;// 在位置i之前(包括位置i)有多少个P,位置i之后(包括位置i)有多少个Tvector<i

PAT 甲级 1048 Find Coins two pointer的写法

PAT 甲级 1048 Find Coins 这道题可以用二分、散列和two pointers三种方法实现,此前写过二分的方法:PAT 甲级 1048 Find Coins 二分的写法 这里是two pointer的写法 #include <bits/stdc++.h>using namespace std;int main(){#ifdef LOCALfreopen("input.t

PAT 甲级 1048 Find Coins 二分的写法

PAT 甲级 1048 Find Coins 二分的写法 散列的写法非常简单明了,LeetCode Problem List很前面就有类似的题。其实这道题用二分实现也是可以的,下面是二分的写法。之后准备做一个二分的专题总结。 #include <bits/stdc++.h>using namespace std;int main(){#ifdef LOCALfreopen("input

PAT甲级 1085 Perfect Sequence 二分和双指针(Two Pointers)

二分写法 #include <bits/stdc++.h>using namespace std;int find_upper_bound(const vector<long long>& nums, long long x){int beg = 0, end = nums.size(), mid = beg + (end - beg) / 2;while (beg < end) {mid