PAT(乙级)2022年冬季考试

news2024/10/6 22:22:49

 此前先后花了十元去做了乙级题,从最开始分别是70,35,43,33(途中做了RobpCom,只搞定了签到题),想着报今年的冬季赛,但是报名费有点高啊,加上做下来感觉不怎么样,后面在比赛结束后也是抽了3个小时去感受一下,满分是没想到的,不过可能因为考试环境比较轻松吧,下面为大家解析本人通关代码。

注:本人的方法或许不是最优,然后在做的过程也是比较烦心的,新题目,还得调整好心态,认真算下来两个小时不到就做完了,结束的时候还有半小时,当时反正是想要放弃的,觉得说也不难,就是实现不了,要么样例过了没全对,要么不知道错在哪,经此,心态真的很重要,原本才四五十分,搞着搞着就满分了

B-1 谣言检测仪

谣言有很多种,本题请你设计一种检测仪,专门针对一类吹牛话术进行验证。

有人喜欢吹牛,说自己做一场报告有 N 次掌声。现给定这个人的报告录音文字版,其中如果有掌声,记录中会出现 (zhangsheng) 字样。请你统计一下报告过程中到底出现了多少次掌声,并且与其说出的掌声次数做个比较,来判断这是不是谣言。

输入格式:

输入在第一行给出一个不超过 100 的正整数 N,即某人号称自己收获的掌声次数。

随后给出由英文字母、数字、标点符号(包括 ,.;:!)、空格、回车、以及 (zhangsheng) 组成的报告文本,为不超过 105 个字符的非空字符串,其中语音记录的文本以 # 结尾。

输出格式:

首先输出语音记录中真实的掌声次数。如果真实次数不小于 N,则随后空 1 格输出 True;否则输出 False

输入样例 1:

3
Hello (zhangsheng).  Glad to meet everyone(zhangsheng).
See you (zhangsheng) next time.#

输出样例 1:

3 True

输入样例 2:

3
Hello (zhangsheng).  Glad to meet everyone(zhang
sheng). Let me hear your zhangsheng!
#

输出样例 2:

1 False

// 这道题就是字符串处理,15分的题没那么难,但是却是我提交最多的一个,注意细节吧,这里我犯了几个错误,第一最开始我用字符串的find函数去对"(zhangsheng)"作检测,然后统计,但是如果一个字符串里面有两个"(zhangsheng)"呢,毕竟,find函数只是判断存不存在,于是后面就用了比较笨的办法,直接挨个判断;第二题目是说真实次数不小于N,也就是大于或等于,而不是等于;第三在判断循环结束条件上,我此前是判断一条字符的最后一个是否是#,也就导致最后一分的样例始终没得到,最后想着再用find函数,有#我们就结束,然后就满分了

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x=0;string s;
    cin>>n;
    getchar();
    while(cin>>s){
           if(s.find("#")!=-1)break;
        for(int i=0;i<s.size();i++)
if(s[i]=='('&&s[i+11]==')'&&s[i+5]=='g'&&s[i+1]=='z'&&s[i+2]=='h'&&s[i+3]=='a'&&s[i+4]=='n'&&s[i+6]=='s'&&s[i+7]=='h'&&s[i+8]=='e'&&s[i+9]=='n'&&s[i+10]=='g')
                x++;
    }
    if(x>=n)cout<<x<<" True";
    else cout<<x<<" False";
    return 0;
}

 

B-2 一道数学题

设整数 m 和 n 在给定闭区间 [a,b] 内,且满足等式 (n2−mn−m2)2=1。请你求出 m2+n2 的最大值。

输入格式:

输入给出两个正整数 a 和 b(1<a<b≤3×104),为闭区间的两个端点。

输出格式:

在一行中按照以下格式输出:

max( m^2 + n^2 ) = s

其中 s 是题面要求的 m2+n2 的最大值,m 和 n 分别对应能取到最大值的 m 和 n 的值。

输入样例:

10 100

输出样例:

max( 55^2 + 89^2 ) = 10946

//这道题真的就是数学题了,一次提交就过了,没啥好说的,就是根据题目,循环加判断 

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,i,j,k=0,x,y;
    cin>>a>>b;
    for(i=b;i>=a;i--){
       for(j=b;j>=a;j--){
           if((i*i-i*j-j*j)*(i*i-i*j-j*j)==1){k=1;x=i,y=j;break;}
       }
        if(k==1)break;
    }
    printf("max( %d^2 + %d^2 ) = %d",y,x,x*x+y*y);
    return 0;
}

 

 B-3 代号大本钟

在“一年一度喜剧大赛”上有一部作品《代号大本钟》,讲的是二战期间德国情报站里有一位英国间谍,代号“大本钟”。当最后情报站只剩下两个人的时候,站长坚信真正的间谍不是间谍,然后用了一下排除法,那就只有他自己是大本钟了……

现在假设情报站进行了 N 人次排查,最后请你用排除法来查一下,谁是那个“大本钟”?

输入格式:

输入第一行给出一个正整数 N(≤104)。随后 N 行,按照排查的时间先后顺序,每行给出一人次排查的结果,格式为:

代号 排查结果

其中 代号 是一个 4 位数字,为被排查的人的编号;排查结果 为 1 表示这人有间谍嫌疑,为 0 表示排除了这人的嫌疑。注意:同一个人可能被排查多次,但无论此前有多少次被列为嫌疑人,本次排查结果为 0 就排除了前面的所有怀疑。

输出格式:

根据排除法,在一行中列出所有被排查的人中有可能是“大本钟”的人的编号。编号按递增序给出,相邻编号间以 1 个空格分隔,行首尾不得有多余空格。

如果只有一个人有嫌疑,则在第二行输出 Da Ben Zhong is found!;如果有多个嫌疑,则输出 There are n suspects.,其中 n 是嫌疑人的个数。

题目保证至少有一个人是“大本钟”。

输入样例 1:

10
1234 1
2234 0
3234 1
1234 1
3234 1
2234 0
2234 1
3234 0
1234 0
1234 0

输出样例 1:

2234
Da Ben Zhong is found!

输入样例 2:

10
1234 1
2234 0
3234 1
1234 1
3234 1
2234 0
2234 1
3234 0
1234 0
1234 1

输出样例 2:

1234 2234
There are 2 suspects.

//这道题让我想起了帅到没朋友:题目详情 - L1-020 帅到没朋友 (pintia.cn)

题目比较简单,现在来看好像cmp函数有些多余了,也不用结构体,数组解决就可以,总的就是不管你这个数前面多少次0或者1,我只看最后一次,于是利用map函数,根据该数的判断结果,对这个数进行标记,这样的标记是实时更新的,保证最后的是最后的判断结果,然后再嫌疑人放进另一个数组进行排序,并判断是一个还是多个,到这里大家都能解决,但就是做不对,我此前用的是int定义这个数,后面换成string就对了,和之前做的帅到没朋友也是一样的道理,当时没想明白,可在写博客的时候想起了,如果用int定义这个数,当0000编号类出现,就是前导零的时候,如果输出上不加以控制,那么势必不会输出前导零。 

#include<bits/stdc++.h>
using namespace std;
struct xx{
    string x;
    int y;
}s[10005];
bool cmp(xx a,xx b){
return a.x<b.x;
    }
int main(){
    int n,i,j=0;
    string a[10005];
    map<string,int>p;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>s[i].x>>s[i].y;
        if(s[i].y==1)p[s[i].x]=1;
       else if(s[i].y==0)p[s[i].x]=0;
    }
    for(i=0;i<n;i++){
        if(p[s[i].x]==1)a[j++]=s[i].x;
        p[s[i].x]=0;
    }
    sort(a,a+j);
    for(i=0;i<j;i++){
 if(i!=0)cout<<" ";
        cout<<a[i];
    }
    cout<<endl;
    if(j==1)cout<<"Da Ben Zhong is found!";
    else printf("There are %d suspects.",j);
    return 0;
}

 B-4 真分数的约分

真分数是指分子小于分母的分数。对分数进行约分,是指将分子分母共同的因子消去。

但还有一种另类的简单约分:直接将分子分母共有的一对数字消去。这种方法大多数情况下都得不到正确的结果,但有时候却也碰巧能对!例如 26/65 = 2/5 就是直接消去 6 的结果。

现给定一个真分数,你的任务是判断它是否能用简单约分方法得到正确结果。注意:如果有多种简单约分的可能,一定按从左到右的顺序约掉数字。

输入格式:

输入在一行中给出一个真分数的分子 a 和分母 b,其间以空格分隔。题目保证 0<a<b≤105。

输出格式:

在一行中先后输出这个真分数在简单约分前后的样子。如果两个分数相等,则在两者间加一个 = 号;否则加一个 != 号。格式为 a/b = c/d 或 a/b != c/d

输入样例 1:

39 195

输出样例 1:

39/195 = 3/15

输入样例 2:

1234 23452

输出样例 2:

1234/23452 != 1/52

输入样例 3:

1234 5678

输出样例 3:

1234/5678 = 1234/5678

//这题就表示我做错的地方,直接解析。首先输入两个整数,为了方便转为字符串处理,对分子从左往右循环,k=0,然后对分母从左往右循环,如果分子的数,等于分母的数且保证这个分母的数的位置没被标记,那么我们就标记,k=1表示分子当前这个位置的数被删除了,p[j]=1表示分母上的这个位置的数被删除了,然后判断k值,如果没被标记,用x存起来,后面再循环判断没被标记的分母再用y存起来,最后判断输出,这里需要注意判断的精度问题,然后还有一个样例点,就是当x和y为0的时候,需要特判一下

#include<bits/stdc++.h>
using namespace std;
int main(){
  string a,b;  int i,x=0,y=0,j,a1,b1;
    cin>>a1>>b1;
    a=to_string(a1);b=to_string(b1);
    map<int,int>p;
    for(i=0;i<a.size();i++){
        int k=0;
        for(j=0;j<b.size();j++){
            if(a[i]==b[j]&&p[j]==0){k=1;p[j]=1;break;}
        }
        if(k==0)x=x*10+(a[i]-'0');
    }
    for(j=0;j<b.size();j++){
        if(p[j]==0) y=y*10+(b[j]-'0');
    }
     if(x==0&&y==0)printf("%d/%d != %d/%d",a1,b1,x,y);
    else 
    {if(a1*1.0/x==b1*1.0/y)printf("%d/%d = %d/%d",a1,b1,x,y);
    else printf("%d/%d != %d/%d",a1,b1,x,y);}
    return 0;
}

 

 B-5 取行李

一般机场里,航班到达后,旅客们会去到达区的行李传送带那里取自己的行李。

现假设有一座特别的机场,每条传送带只有一个取行李的窗口。旅客们必须排好队,逐一到窗口取自己的行李。但是当某人到窗口前,发现行李不是自己的,那人就只好走到队尾去等下一次机会。此时那件行李会一直等在窗口,直到它的主人把它取走。假设每一次认领需要 1 分钟,本题就要求你计算传送带清空需要的时间、以及旅客们的平均等待时间。

例如,假设行李 i 属于旅客 i。行李的到达顺序是 1、2、3,旅客的到达顺序是 2、1、3。则 1 号行李要等 2 分钟才能被主人 1 号旅客取走。这时行李队列中有 2、3,旅客队列中是 3、2。于是 2 号行李还要等 2 分钟才能被 2 号旅客取走,最后 3 号在第 5 分钟取走行李。旅客们的平均等待时间是 (2+4+5)/3≈3.7。

输入格式:

输入首先在第一行给出一个正整数 N(≤103)。下一行给出 N 个数字,是 [1,N] 区间内整数的一个重排列,表示旅客队列。这里我们假设行李队列是按 1、2、……、N 有序的,并且行李 i 属于旅客 i。一行中数字间以空格分隔。

输出格式:

在一行中输出传送带清空需要的时间、以及旅客们的平均等待时间(输出小数点后 1 位)。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

5
3 5 1 2 4

输出样例:

9 6.0

//这道题算是有点作弊吧,知道要有队列,先进先出,后进后出,后面新加的元素都会放在队尾,但是平时练stl类的题太少了,map用的很多,其他的有点陌生,上次还写了stl浅析的博客以此巩固基础知识, 不过做的时候还是忘掉了,最基本的queue,我给写成了queen,入队的push写成了pshu_back,现在也记不起是哪里的知识点了

书归正转,我们用一数组存1-n的自然序列,也就是箱子顺序(不过现在看好像不用,直接和i变量对比就行),然后将题目的顾客顺序存进队列,之后循环,再循环判断,如果当前队头元素不等于当前箱子序号,那么就等一分钟,将队头元素放到队尾,等于之后,删掉这个队头,将时间存起来,后面就是时间的统计了,这里给个图形描述,还需要注意,因为如果当前队头就等于当前序号,就不进行第二个循环,但是这里都需要花费一分钟,所以x为1

代码还可以精简一点,不过当时只想着能做出来就好 

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[1005],i,c,x=0,z,d[1005],m=0,p=0; double y=0;
    queue<int>b;
    cin>>n;
    for(i=1;i<=n;i++)a[i]=i;
    for(i=1;i<=n;i++){
        cin>>c;
        b.push(c);
    }
    for(i=1;i<=n;i++){
        x=1;
       while(a[i]!=b.front()){
           x++;
           z=b.front();
           b.pop();
           b.push(z);
       }
        b.pop();
        d[i]=x;
    }
     for(i=1;i<=n;i++) m+=d[i];
     for(i=1;i<=n;i++){
         p=0;
         for(int j=1;j<=i;j++)
             p+=d[j];
         y+=p;
     }
    y=y*1.0/n;
    printf("%d %.1f",m,y);
    return 0;
}

 //下面分别附上我参加考试的同学当时他们的通关率和我后面花钱买习题的通关率,有些题看似难,但简单,而看起来简单的也确实简单,只是细节要处理到位,不要只盯着题目给的样例,要自己去找样例测试

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django的黄河文化科普网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

GitHub搜索开源项目

GitHub的流行&#xff0c; GitHub在开源世界的受欢迎程度自不必多言。再加上今天&#xff0c;GitHub官方又搞了个大新闻&#xff1a;私有仓库也改为免费使用&#xff0c;这在原来可是需要真金白银的买的。可见微软收购后&#xff0c;依然没有改变 GitHub 的定位&#xff0c;甚至…

使用高德地图展示点位和信息窗体展示数据及播放视频

使用高德地图做了一个在地图展示点位&#xff0c;并通过点击&#xff0c;显示直播的功能&#xff0c;这个任务是为了之后大屏做准备。 这是一个能展示多个点标记&#xff0c;并在点击的时候弹出信息窗体&#xff0c;并在信息窗体中播放视频&#xff0c;且展示相关信息以及操作…

【Lilishop商城】No3-6.模块详细设计,商品模块-2(商品及强关联附属 商品sku、批发、图册等等)的详细设计

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代码…

队列的练习题

用队列实现栈 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09; 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶int pop()移除并返回栈顶元素…

I2C总线式驱动开发

文章目录前言一、Linux内核对I2C总线的支持1.1、理解I2C设备驱动、I2C总线驱动以及I2C核心之间的关系1.2、i2c二级外设驱动开发涉及到核心结构体及其相关接口函数&#xff1a;二、I2C总线二级外设驱动开发方法-名称匹配2.1、i2c二级外设client框架&#xff1a;2.2、i2c二级外设…

[附源码]Nodejs计算机毕业设计基于java网上心理咨询系统数据分析Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

Docker整体架构及底层通信原理简述

Docker 是一个 C/S 模式的架构&#xff0c;后端是一个松耦合架构&#xff0c;众多模块各司其职。 Docker运行的基本流程为&#xff1a; 1. 用户是使用Docker Client与Docker Deamon建立通信&#xff0c;并发送请求给后者&#xff1b; 2.Docker Deamon作为Docker架构中的主体…

复制项目配准信息,用于将超级大图贴到地图上

目录 1 前言 2 大图片另存为一个小图片&#xff0c;小图片文件名包含坐标参数 3 制作第二个普通配准项目&#xff0c;原来的大图不能用坐标信息命名 4 开始配准切图 1 前言 前面介绍过&#xff0c;如果已经知道一幅图片的任意2个角的坐标&#xff0c;可以用非常简单的方式…

Spring Bean的初始化过程 initializeBean

目录 1.定义对象 2.注册对象 3.DEBUG Aware处理 4.完整初始化流程概览 5. applyBeanPostProcessorsBeforeInitialization 5.1 this.beanPostProcessors 里面的处理顺序 5.1.1 ApplicationContextAwareProcessor 5.1.2 ApplicationListenerDetector 5.1.3 WebApplicatio…

水泥路面、桥梁基建、隧道裂痕裂缝检测数据集

在我之前的博文中已经写过几篇关于特定场景下的裂痕裂缝检测的模型实践文章&#xff0c;后面也有很项目应用都是基于此构建的&#xff0c;这里主要是对前面几篇博文的数据集进行介绍。 相应的系列文章如下&#xff0c;感兴趣的话可以自行移步阅读即可。 《基于yolov5sbifpn实…

Java基于springboot球员转会管理系统 +vue+elementUI

项目介绍 本球员转会管理系统是针对目前球员转会管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的球员转会管理系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信…

高精度加减乘除——C++实现

每日一句&#xff1a;每天早上醒来时&#xff0c;我们有两个简单的选择&#xff1a;回头去睡&#xff0c;继续做梦。或者起身去追逐梦想。 高精度加减乘除前言一、高精度加法1.基本思路2.分步讲解2.1输入字符数字2.2把字符数字转换为数字2.3实现add函数3.完整代码二、高精度减法…

[附源码]Python计算机毕业设计大学生网络安全题库系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Linux进程通信

写在前面 今天主要的任务就是知道什么是进程通信?进程通信是如何实现的?前面我们学习了基础IO,再往前看又学习进程的相关的概念,那么今天我们通过进程的通信来把他们用起来.这个话题挺重要的,但是没有前面的大. 进程通信 "通信"这个单词很好理解,就是两个或者多…

Codon

又搬来了一个框架 并没用过啊 说着比c还厉害~ 大伙谁 研究过呢? 希望不是和咱们的中药一样~~ 众所周知&#xff0c;Python 是一门简单易学、具有强大功能的编程语言&#xff0c;在各种用户使用统计榜单中总是名列前茅。相应地&#xff0c;围绕 Python&#xff0c;研究者开发了…

Vector-常用CAN工具 - CANoe入门到精通_05

CAPL Test Module 在“Vector-常用CAN工具 - CANoe入门到精通”的第4/4篇中介绍了作为Server端的Network Node节点以及相应的一些常用函数&#xff0c;今天我们来介绍下当前依然有很多人在用的自动化脚本开发编译器 - CAPL Test Module&#xff0c;这个基本能满足单个功能模块…

KingbaseES V8R6备份恢复案例之---sys_waldump解析wal日志PITR恢复

​案例说明&#xff1a; 复现用户删除表(drop table)误操作&#xff0c;通过wal日志解析找到误操作时间点&#xff0c;执行基于时间点的恢复(PITR)。适用版本&#xff1a; KingbaseES V8R6 一、模拟业务现场操作 1、查看当前对象信息 prod# \dList of relationsSchema | …

R语言逻辑回归预测分析付费用户

对于某企业新用户&#xff0c;会利用大数据来分析该用户的信息来确定是否为付费用户&#xff0c;弄清楚用户属性&#xff0c;从而针对性的进行营销&#xff0c;提高运营人员的办事效率。 相关视频&#xff1a;R语言逻辑回归&#xff08;Logistic回归&#xff09;模型分类预测病…

javaScript内存管理及监控

1.1 内存定义 内存由可读写单元组成&#xff0c;表示一片可操作空间&#xff0c;开发者主动申请空间、使用空间、释放空间。内存主要存储变量等数据&#xff0c;局部变量当程序执行结束&#xff0c;且没有引用的时候就会随着消失&#xff0c;全局对象会始终存活到程序运行结束。…