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

题目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.mzph.cn/news/171377.shtml

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

相关文章

轻松实现文件按数量平均分类,高效整理并自动新建文件夹保存“

你是否曾经因为文件数量过多&#xff0c;整理起来繁琐而感到烦恼&#xff1f;是否曾经为了新建文件夹而手动一个一个进行创建&#xff0c;费时又费力&#xff1f;现在&#xff0c;我们的智能文件管理工具将为你解决这些问题&#xff01; 首先第一步&#xff0c;我们要进入文件…

【开源】基于Vue.js的网上药店系统

项目编号&#xff1a; S 062 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S062&#xff0c;文末获取源码。} 项目编号&#xff1a;S062&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药…

聊一聊索引覆盖的好处

问&#xff1a;索引覆盖啥意思&#xff1f; 答&#xff1a;若查询的字段在二级索引的叶子节点中&#xff0c;则可直接返回结果&#xff0c;无需回表。这种通过组合索引避免回表的优化技术也称为索引覆盖&#xff08;Covering Index&#xff09;。在叶子节点中的包括索引字段和主…

DataGrip 2023.2.3(IDE数据库开发)

DataGrip是一款数据库集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于数据库管理和开发。 DataGrip提供了许多强大的功能&#xff0c;如SQL语句编辑、数据库连接管理、数据导入和导出、数据库比较和同步等等。它支持多种数据库&#xff0c;如MySQL、PostgreSQL、Ora…

Unity技美35——再URP管线环境下,配置post后期效果插件(post processing)

前两年在我的unity文章第10篇写过&#xff0c;后效滤镜的使用&#xff0c;那时候大部分项目用的还是unity的基础管线&#xff0c;stander管线。 但是现在随着unity的发展&#xff0c;大部分项目都用了URO管线&#xff0c;甚至很多PC端用的都是高效果的HDRP管线&#xff0c;这就…

位图及有关海量数据处理

bitset 1.给40亿个不重复的无符号整数&#xff0c;没排过序&#xff0c;给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个中 ①.如果用排序加二分查找&#xff0c;40亿个数需要16g内存&#xff0c;内存开不出这么大连续空间 ②.每个值映射一个比特位&#xff0c;…

基于Haclon的图形镜像案例

项目要求&#xff1a; 图为HALCON的例图“green-dot”&#xff0c;请将其中的圆形图案按水平和垂直两个方向分别进行镜像。 项目知识&#xff1a; 首先要用BLOB分析的方法&#xff0c;得到圆形图案的目标区域&#xff0c;再对其进行镜像。 在HALCON中与镜像相关的算子为mirr…

基于Eclipse+Swing+MySQL开发的借贷平台

基于Swing的借贷平台 项目介绍&#x1f481;&#x1f3fb; 本项目是一个基于Java JDBC的银行管理系统。开发环境为MyEclipse2014&#xff0c;数据库使用MySQL V5.5&#xff0c;操作系统为Windows 7 64位。 主要功能包括用户开户、存款、取款、转账、查询余额、修改密码和销户等…

两巨头Facebook 和 GitHub 联手推出 Atom-IDE

9月13日&#xff0c;GitHub 宣布与 Facebook 合作推出了 Atom-IDE —— 它包括一系列将类 IDE 功能带到 Atom 的可选工具包。初次发布的版本包括更智能、感知上下文的自动完成&#xff1b;导航功能&#xff0c;如大纲视图和定义跳转(outline view and goto-definition)&#xf…

生态对对碰|华为OceanStor闪存存储与OceanBase完成兼容性互认证!

近日&#xff0c;北京奥星贝斯科技有限公司 OceanBase 数据库与华为技术有限公司 OceanStor Dorado 全闪存存储系统、OceanStor 混合闪存存储系统完成兼容性互认证。 OceanBase 数据库挂载 OceanStor 闪存存储做为数据盘和日志盘&#xff0c;在 OceanStor 闪存存储系统卓越性能…

css优化滚动条样式

css代码&#xff1a; ::-webkit-scrollbar {width: 6px;height: 6px; }::-webkit-scrollbar-track {background-color: #f1f1f1; }::-webkit-scrollbar-thumb {background-color: #c0c0c0;border-radius: 3px; }最终样式&#xff1a;

TPLink-Wr702N 通过OpenWrt系统打造打印服务器实现无线打印

最近淘到了一个TPLink-Wr702N路由器&#xff0c;而且里面已经刷机为OpenWrt系统了&#xff0c;刚好家里有一台老的USB打印机&#xff0c;就想这通过路由器将打印机改为无线打印机&#xff0c;一番折腾后&#xff0c;居然成功了&#xff0c;这里记录下实现过程&#xff0c;为后面…

flink源码分析之功能组件(二)-kubeclient

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics,future。其中kubeclient上一个系列介绍过,为了系列完整性,这里“copy”一下。 kubeclient组件…

electron+vue3全家桶+vite项目搭建【26】electron本地安装Vue Devtool插件,安装浏览器扩展

文章目录 引入获取vue devtool导入插件排除插件的npm脚本最终效果 引入 demo项目地址 Vue Devtools插件是vue项目必备插件&#xff0c;它是安装在浏览器里的&#xff0c;而咱们的electron中实际就包含了一个浏览器&#xff0c;同理它也可以加载浏览器插件 获取vue devtool 直…

【开源】基于Vue+SpringBoot的食品生产管理系统

项目编号&#xff1a; S 044 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S044&#xff0c;文末获取源码。} 项目编号&#xff1a;S044&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…

WIFI模块(esp-01s)获取网络时间与天气信息

目录 一、硬件连接 二、获取网络时间 1、AT指令集 2、具体操作 三、获取天气信息 1、心知天气注册 2、AT指令集 3、具体操作 4、json格式检查 一、硬件连接 WiFi模块的RX连接TTL模块的TX&#xff0c; WiFi模块的TX连接TTL模块的RX&#xff0c;电源与地接对。 插入电脑…

Python 安装Vue依赖包发生异常:npm ERR! notsup Required: {“node“:“^18.17.0 || >=20.5.0“}

异常&#xff1a; 原因&#xff1a;node和npm要求升级为高版本 解决&#xff1a;重新安装node环境 &#xff08;1&#xff09; 官网下载Node.js &#xff08;2&#xff09;双击安装node.js &#xff08;3&#xff09;运行查看

智能优化算法应用:基于蝗虫算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蝗虫算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蝗虫算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝗虫算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

第二十一章 解读XML与JSON文件格式(工具)

XML 带分隔符的文件仅有两维的数据&#xff1a;行 & 列。如果我们想在程序之间交换数据结构&#xff0c;需要一种方法把层次结构&#xff0c;序列&#xff0c;集合和其它的数据结构编码成文本。 今天要说的 XML 是最突出的处理上述这种转换的标记格式&#xff0c;它使用标…

每日一题2023.11.26——个位数统计【PTA】

题目要求&#xff1a; 输入格式&#xff1a; 每个输入包含 1 个测试用例&#xff0c;即一个不超过 1000 位的正整数 N。 输出格式&#xff1a; 对 N 中每一种不同的个位数字&#xff0c;以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。…