(2023码蹄杯)省赛(初赛)第三场真题(原题)(题解+AC代码)

news/2024/2/28 8:55:25

题目1:MC0227堆煤球

码题集OJ-堆煤球 (matiji.net)

思路:

1.i从l枚举到r,i是8的倍数就跳过,i不是8的倍数就用等差数列求和公式i(1+i)/2,最后累加到答案中即可

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int main( )
{int l,r;  cin>>l>>r;int ans=0;for(int i=l;i<=r;i++){if(i%8==0)  continue;   //注意这里是模8ans+=i*(1+i)/2; //等差数列求和公式}cout<<ans;return 0;
}

题目2:MC0228军团大战

码题集OJ-军团大战 (matiji.net)

思路:

1.找出字符数量最多,有多个输出字典序最小的那一个

2.开一个数组,统计每一个字母出现的次数

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int main( )
{string  s;  cin>>s;vector<int>cnt(26); //统计每一个字符出现的次数int mx=0;for(char c:s){cnt[c-'A']++;mx=max(mx,cnt[c-'A']);}for(int i=0;i<26;i++)   //找到字典序最小的一个if(cnt[i]==mx){cout<<(char)(i+'A');return 0;}return 0;
}

题目3:MC0229武力对决

码题集OJ-武力对决 (matiji.net)

思路:

1.获得的最大经验值,用最大值减最小值得到

2.求最大值最小值,可以一趟遍历求得,也可以直接排序

AC_Code:C++

#include<bits/stdc++.h> using namespace std;
int const N=1e5+7;int a[N];
int n;int main( )
{scanf("%d",&n);for(int i=0;i<n;i++)    scanf("%d",a+i);sort(a,a+n);cout<<a[n-1]-a[0]<<endl;return 0;
}

题目4:MC0230小码哥教数学

码题集OJ-小码哥教数学 (matiji.net)

思路:

1.互质就是最大公约数为1,让两组学生左移,就是取出最高一位,把它放到个位

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int gcd(int a,int b){return b==0?a:gcd(b,a%b);
}int main( )
{int a,b;    cin>>a>>b;int temp=a,n=0;while(temp) temp/=10,n++;int base=pow(10,n-1);   //10^(n-1)int ans=-1;for(int i=0;i<n;i++){if(gcd(a,b)==1){ans=i; break;   //满足互质}a=a%base*10+a/base;b=b%base*10+b/base;}cout<<ans;return 0;}

题目5:MC0231圣诞树上的星星

码题集OJ-圣诞树上的星星 (matiji.net)

思路:

1.3的倍数输出|,不是3的倍数第几行输出几个星星

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int main( )
{int n;  cin>>n;for(int i=1;i<=n;i++){if(i%3==0)  puts("|");  //3的倍数else{for(int j=0;j<i;j++)    printf("*");puts("");}}return 0;
}

题目6:MC0232魔塔密码

码题集OJ-魔塔密码 (matiji.net)

思路:

1.密码是由每隔k-1个字符组成的,相当于由下标索引模k等于0的所有字符组成

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int main( )
{int k;  string s;   cin>>k>>s;for(int i=0;i<s.size();i++){if(i%k==0) cout<<s[i];}return 0;
}

题目7:MC0233地狱尖兵

码题集OJ-地狱尖兵 (matiji.net)

input:

3
5 5
....P
##..E
K#...
##...
.....
5 5
P....
.....
..E..
.....
....K
5 5
P#..E
.#.#.
.#.#.
.#.#.
...#K

output:

No solution
12
No solution

思路:bfs

1.小马妹先和其他小队回合,在一起前往制高点,先求P,K最短距离,再求K,E最短距离

2.求最短距离,可以跑一遍bfs,注意求P,K最短距离时要将制高点看成墙,表示不能通行

AC_Code:C++

#include<bits/stdc++.h> using namespace std;
int const N=507;char s[N][N];
bool vis[N][N];
int n,m;
int dx[]={-1,1,0,0},dy[]={0,0,-1,1};
struct Node{int x,y,step;
};int bfs(int x1,int y1,int x2,int y2){queue<Node>q;   q.push({x1,y1,0});memset(vis,0,sizeof vis);vis[x1][y1]=1;while(q.size()){Node temp=q.front();    q.pop();if(temp.x==x2&&temp.y==y2)  return temp.step;   //找到了终点for(int i=0;i<4;i++){int x=dx[i]+temp.x,y=dy[i]+temp.y;if(x<0||y<0||x>=n||y>=m)    continue;   //越界if(s[x][y]=='#'||vis[x][y])    continue;    //是墙,或者被遍历过q.push({x,y,temp.step+1});vis[x][y]=1;}}return -1;  //没有到终点
}void solve(){scanf("%d%d",&n,&m);int px,py,kx,ky,ex,ey;for(int i=0;i<n;i++)   scanf("%s",s[i]);for(int i=0;i<n;i++)for(int j=0;j<m;j++){if(s[i][j]=='P')    px=i,py=j;else if(s[i][j]=='K')   kx=i,ky=j;else if(s[i][j]=='E')   ex=i,ey=j;}//小马妹要和其他小队先会和,此时制高点也看成墙s[ex][ey]='#';  int t1=bfs(px,py,kx,ky);s[ex][ey]='E';  //复原int t2=bfs(kx,ky,ex,ey);if(t1==-1||t2==-1)  puts("No solution");else cout<<t1+t2<<endl;
}int main( )
{int T;  cin>>T;while(T--){solve();}return 0;
}

题目8:MC0234激光扫描游戏

码题集OJ-激光扫描游戏 (matiji.net)

思路:

1.按要求模拟,遇到炸炸弹,变化扫描范围

AC_Code:C++

#include<bits/stdc++.h> using namespace std;
int const N=1e3+7;int n;
vector<int>g[N];    //g[i]:存的是第i的的炸弹int main( )
{cin>>n;for(int i=0;i<n;i++){int x,y;    cin>>x>>y;g[x].push_back(y);}int ans=0,r=499;for(int i=0;i<1000;i++){int cur_r=r;ans+=cur_r+1;//遇到炸弹,变化为:行-列for(int j:g[i]){if(cur_r>=j)    r=r+(i-j);}//扫描位置最大为999,最小为0if(r<0) r=0;if(r>999)   r=999;}cout<<ans;return 0;
}

题目9:MC0235数数游戏

码题集OJ-数数游戏 (matiji.net)

思路:

1.从1枚举到n,分别统计满足要求的情况

AC_Code:C++

#include<bits/stdc++.h> using namespace std;//能被3整除或包含数字3
bool check3(int n){if(n%3==0)  return true;while(n){if(n%10==3) return true;n/=10;}return false;
}//能被5整除或包含数字5
bool check5(int n){if(n%5==0)  return true;while(n){if(n%10==5) return true;n/=10;}return false;
}int main( )
{int n;  cin>>n;int a=0,b=0,c=0;for(int i=1;i<=n;i++){if(check3(i)&&check5(i))    c++;    //规则一二都满足else{if(check3(i))   a++;    //满足规则一if(check5(i))   b++;    //满足规则二}}printf("%d\n%d\n%d\n",a,b,c);return 0;
}

题目10:MC0236跳跳棋

码题集OJ-跳跳棋 (matiji.net)

input:

4
4
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8

output:

8

思路:模拟

1.模拟跳到的格子,是质数答案++

AC_Code:C++

#include<bits/stdc++.h> using namespace std;
int const N=107;int a[N][N];
int n,m;//检查是否为质数
bool check(int n){for(int i=2;i<=n/i;i++)if(n%i==0)  return false;return true;
}int main( )
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)   scanf("%d",&a[i][j]);int ans=0;int i=1,j=1;while(i<=n){if(check(a[i][j]))  ans++,j+=a[i][j]%10;   //是质数答案++else j++;   //不是质数向右跳一格if(j>m) i++,j=1;}   cout<<ans;return 0;
}

题目11:MC0237小狗巴克

码题集OJ-小狗巴克 (matiji.net)

思路:

1.对原字符串去除'!',得到一个新的字符串,然后用新的字符串调用find函数,查找目标字符串

AC_Code:C++

#include<bits/stdc++.h> using namespace std;int main( )
{string s,t; cin>>s>>t;string new_s;for(int i=0;i<s.size();i++) {if(s[i]=='!')   continue;   //去除'!'new_s+=s[i];}int idx=new_s.find(t);  //用新的字符串直接调用find函数if(idx!=-1) puts("True");else puts("False");return 0;
}

题目12:

占时更新

题目13:MC0239小码哥玩字母独

码题集OJ-小码哥玩字母独 (matiji.net)

思路:

1.开一个hash数组,将主对角线的字符,加入数组中,如果一个字符出现了两次,则输出refuse,并结束程序,如果到最后都没有出现相同的字符输出accept

AC_Code:C++

#include<bits/stdc++.h> using namespace std;
int const N=107;int n;
char str[N][N];
bool vis[26];   //hash数组int main( )
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%s",str[i]+1);for(int i=1;i<=n;i++){char c=str[i][i];if(vis[c-'a']){ puts("refuse"); //当前字符出现了2次了return 0;}vis[c-'a']=true;}puts("accept");return 0;
}


http://www.ppmy.cn/news/1240160.html

相关文章

PS去除图片上的文字。

问题描述&#xff1a;如何使用PS去除图片上的文字。 解决办法&#xff1a; 第一步&#xff1a;使用框选命令选中文字所在区域&#xff0c;如下图所示。 第二步&#xff0c;右键选择填充&#xff0c;选择内容填充即可。 第三步&#xff0c;文字去除效果如下。

u-popup组件在UniApp中的讲解

u-popup 组件是 UniApp 中一个多功能且强大的组件&#xff0c;UniApp 是一个使用 Vue.js 开发跨平台应用程序的框架。u-popup 组件提供了一种在应用程序的其他内容上方显示临时或浮动内容的方式。 使用方法&#xff1a; 要在 UniApp 项目中使用 u-popup 组件&#xff0c;你需要…

【vue实战项目】通用管理系统:学生列表

本文为博主的vue实战小项目系列中的第五篇&#xff0c;很适合后端或者才入门的小伙伴看&#xff0c;一个前端项目从0到1的保姆级教学。前面的内容&#xff1a; 【vue实战项目】通用管理系统&#xff1a;登录页-CSDN博客 【vue实战项目】通用管理系统&#xff1a;封装token操作…

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞。 带有条件响应的 SQL 盲注 这篇文章的核心要点如下: 漏洞发现:作者在Portswigger提供的实验室中发现了一个盲SQL注入漏洞。这个漏洞存在于一个应…

【Docker】从零开始:7.Docker命令:容器命令及参数详解

【Docker】从零开始&#xff1a;7.帮助启动类命令 一、帮助启动类命令启动Docker停止Docker重启Docker查看Docker状态开机启动查看docker概要信息查看docker总体帮助文档查看docker命令帮助文档 二、镜像命令列出本地主机上的镜像运行示例返回说明操作参数 搜索仓库里的某个镜像…

Ubuntu 22.04.3编译AOSP13刷机

文章目录 设备信息下载AOSP并切换分支获取设备驱动编译系统编译遇到的问题Cannot allocate memoryUbuntu设置USB调试刷机参考链接 设备信息 手机&#xff1a;Pixel 4XL 下载AOSP并切换分支 在清华大学开源软件镜像站下载初始化包aosp-latest.tar。 解压缩&#xff0c;切换到…

【MATLAB源码-第89期】基于matlab的灰狼优化算法(GWO)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 灰狼优化算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;是一种模仿灰狼捕食行为的优化算法。灰狼是群居动物&#xff0c;有着严格的社会等级结构。在灰狼群体中&#xff0c;通常有三个等级&#xff1a;首领&#xff…

浅析linux中的信号

人们往往将信号称为“软件中断”&#xff0c;它提供了异步事件的处理机制&#xff0c;这些事件可以来自系统外部&#xff08;如用户按下ctrlc产生中断符&#xff09;&#xff0c;也可能来自程序或者内核内部的执行动作&#xff08;如进程除零操作&#xff09;。进程收到信号&am…

oracle安装的肘腋之疾小合集

#临时空间指定 export TMP/tmp export TMPDIR/tmp #图形化显示框不全 java问题&#xff0c;使用系统自带的jre ./runInstaller -jreLoc/usr/local/jdk1.7.0_80/ #ins30131 Failed to access the temporary location 给/tmp/CVU*加x权限 #linux桌面太小 xrandr -s 1440x900_60…

std::enable_shared_from_this

1. 作用 能够让一个对象(名称为t&#xff0c;并且被一个std::shared_ptr对象pt管理)&#xff0c;安全生成其他额外的std::shared_ptr实例(名称为pt1、pt2)&#xff0c;它们与pt共享t的所有权 如果一个类T继承了std::enable_shared_from_this<T>&#xff0c;那么T类中就有…

人工智能 -- 神经网络

1、什么是神经网络 什么是人工智能&#xff1f;通俗来讲&#xff0c;就是让机器能像人一样思考。这个无需解释太多&#xff0c;因为通过各种科幻电影我们已经对人工智能很熟悉了。大家现在感兴趣的应该是——如何实现人工智能&#xff1f; 从1956年夏季首次提出“人工智能”这…

Java串行化接口详解

引言 在 Java 开发中&#xff0c;我们经常需要将对象进行序列化和反序列化&#xff0c;以便在网络传输或存储到持久化介质中。Java 提供了一种机制&#xff0c;即通过实现 Serializable 接口来实现对象的串行化。本文将详细介绍 Java 串行化接口的用法和原理&#xff0c;以及一…

lv11 嵌入式开发 GPIO实验 9

目录 1 简介 1.1 GPIO 2 LED实验步骤 2.1 通过电路原理图分析LED的控制逻辑 2.2 通过电路原理图查找LED与Exynos4412的连接关系 2.3 通过数据手册分析GPIO中哪些寄存器可以控制LED 2.4 通过程序去操控对应的寄存器完成对LED的控制 2.4.1 使用寄存器写入…

Linux shell编程学习笔记29:shell自带的 脚本调试 选项

Linux shell脚本的调试方法比较多&#xff0c;上次我们探讨和测试了shell内建命令set所提供的一些调试选项&#xff0c;其实 shell 本身也提供了一些调试选项。我们以bash为例来看看。 1 bash 的命令行帮助信息&#xff08;bash --help&#xff09; purleEndurer csdn ~ $ ba…

软件测试 | MySQL 主键约束详解:保障数据完整性与性能优化

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

数据结构与算法编程题24

中序遍历非递归算法 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1 #define Maxsize 100 #define STR_SIZE 1024typedef struct BiTNode {ElemType data;BiTNode* lchild, * rchild; }B…

Python武器库开发-前端篇之CSS基本语法(三十)

前端篇之CSS基本语法(三十) CSS简介 CSS&#xff08;层叠样式表&#xff09;是一种用于描述网页外观和布局的样式表语言。它与 HTML 一起&#xff0c;帮助开发者对网页进行美化和布局。CSS通过定义网页元素的颜色、字体、大小、背景、边框等属性&#xff0c;使网页变得更加美…

开源语音大语言模型来了!阿里基于Qwen-Chat提出Qwen-Audio!

论文链接&#xff1a;https://arxiv.org/pdf/2311.07919.pdf 开源代码&#xff1a;https://github.com/QwenLM/Qwen-Audio 引言 大型语言模型&#xff08;LLMs&#xff09;由于其良好的知识保留能力、复杂的推理和解决问题能力&#xff0c;在通用人工智能&#xff08;AGI&am…

【部署运维】docker:入门到进阶

0 前言 部署运维博客系列一共有三篇&#xff1a; 拥抱开源&#xff0c;将工作中的经验分享出来&#xff0c;尽量避免新手踩坑。 【部署运维】docker&#xff1a;入门到进阶 【部署运维】kubernetes&#xff1a;容器集群管理掌握这些就够了 【部署运维】pythonredisceleryd…

axios封装和请求跨域和.gitignore文件

axios封装 首先这部分网上找找应该一大堆&#xff0c;其中本人喜欢同.env文件一同配合使用&#xff1b; let base_url process.env.PROJECT_NAME if (process.env.NODE_ENV production){base_url process.env.PROJECT_BASEURL process.env.PROJECT_NAME// base_url http:…
最新文章