第十五届蓝桥杯模拟赛(第二期 C++)

俺自己做的噢,还未核实答案,若有差错,望斧正。

第一题

小蓝要在屏幕上放置一行文字,每个字的宽度相同。小蓝发现,如果每个字的宽为 36 像素,一行正好放下 30 个字,字符之间和前后都没有任何空隙。请问,如果每个字宽为 10 像素,字符之间不包含空隙,一行可以放下多少个字?

答案108

第二题

求 2**2023%1000,即 2的2023次方除以1000的余数。

答案608

第三题

如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。   

前几个数位和相等的正整数为 1, 8, 9, 64, ……   请问第 23 个数位和相等的正整数是多少?

答案4169

第四题

对于以下这些数(6行,每行6个,共36个),请问约数个数最多的是哪个?(如果有多个,请回答出现最早的那个)   

393353 901440 123481 850930 423154 240461   

373746 232926 396677 486579 744860 468782   

941389 777714 992588 343292 385198 876426   

483857 241899 544851 647930 772403 109929   

882745 372491 877710 340000 659788 658675   

296521 491295 609764 718967 842000 670302

答案901440

第五题

小蓝有一个01矩阵。他打算将第一行第一列的 0 变为 2 。变化过程有传染性,每次 2 的上下左右四个相邻的位置中的 0 都会变成 2 。直到最后每个 2 的周围都是 1 或 2 结束。   请问,最终矩阵中有多少个 2 ?   以下是小蓝的矩阵,共 30 行 40 列。   

       0000100010000001101010101001001100000011   0101111001111101110111100000101010011111   1000010000011101010110000000001011010100   0110101010110000000101100100000101001001   0000011010100000111111001101100010101001   0110000110000000110100000000010010100011   0100110010000110000000100010000101110000   0010011010100110001111001101100110100010   1111000111101000001110010001001011101101   0011110100011000000001101001101110100001   0000000101011000010011111001010011011100   0000100000011001000100101000111011101100   0010110000001000001010100011000010100011   0110110000100011011010011010001101011011   0000100100000001010000101100000000000010   0011001000001000000010011001100101000110   1110101000011000000100011001001100111010   0000100100111000001101001000001010010001   0100010010000110100001100000110111110101   1000001001100010011001111101011001110001   0000000010100101000000111100110010101101   0010110101001100000100000010000010110011   0000011101001001000111011000100111010100   0010001100100000011000101011000000010101   1001111010010110011010101110000000101110   0110011101000010100001000101001001100010   1101000000010010011001000100110010000101   1001100010100010000100000101111111111100   1001011010101100001000000011000110110000   0011000100011000010111101000101110110001

答案591

第六题

问题描述
  给定一个正好六位的正整数 x,请将 x 循环左移一位后输出。
  所谓循环左移一位,是指将原来的十万位变为个位,原来的万位到个位向左移动依次变为十万位到十位。
  例如:194910 左移一位变为 949101 。
  又如:987123 左移一位变为 871239 。


输入格式
  输入一行包含一个整数 x 。保证输入的 x 正好包含 6 个十进制数位,而且十万位和万位上的数字均不为 0 。
输出格式
  输出一行包含一个整数,表示答案。
样例输入
       194910
样例输出
       949101

Code:

#include<iostream> 
using namespace std;#define f(i,a,b) for(int i=a;i<=b;i++)
string tmp;
int a[6];
int main(){cin>>tmp;f(i,0,5){if(i==0){a[5]=tmp[0]-'0';}//cout<<tmp[i];a[i-1]=tmp[i]-'0';}f(i,0,5)cout<<a[i];return 0;
}

第七题

问题描述
  
输入一个仅包含小写英文字母的字符串,请问这个字符串中的最后一元音是什么。
  在英文中,a, e, i, o, u 共 5 个字母是元音字母,其它字母不是元音字母。
输入格式
  
输入一行包含一个字符串,仅由小写英文字符组成,字符串中至少包含一个元音字母。
输出格式
  
输出一行包含一个字符,表示答案。
样例输入
lanqiao
样例输出
o
样例输入
cup
样例输出
u

Code:

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;const int N =10000;string st;
int main()
{    cin>>st;reverse(st.begin(),st.end());for(int i=0;i < st.length();i++){if(st[i]=='a'||st[i]=='e'||st[i]=='i'||st[i]=='o'||st[i]=='u'){cout<<st[i];break;}	}return 0;
}

第八题

问题描述:
  给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零数字的乘积。
  例如,对 123456789 进行一次转换变为 1*2*3*4*5*6*7*8*9=362880,再进行一次转换变为 3*6*2*8*8=2304,再进行一次转换变为 2*3*4=24,再进行一次转换变为 8。
  给定一个整数,请依次将转换过程中经历的每个整数输出,直到小于 10 。
输入格式:
  输入一行包含一个整数 n 。
输出格式:
  输出多行,每行包含一个整数。
样例输入:
123456789
样例输出:
362880
2304
24
8
评测用例规模与约定:
  对于 50% 的评测用例,1 <= n <= 10**9 (10的9次方)。
  对于所有评测用例,1 <= n <= 10**18 (10的18次方)。

Code:

#include<iostream>
#include<cstring>
using namespace std;
#define f(i,a,b) for(int i=a;i<=b;i++)
typedef long long ll;
string s;
ll ans=1;int calc(string s1,int len){int res=1;f(i,0,len-1){int t=s1[i]-'0';if(t==0) continue;//cout<<"t:"<<t<<endl;res*=t;}return res;
}int main(){cin>>s;int len;char s2[20];while(1){len=s.size();//cout<<"len:"<<len<<endl;ans=calc(s,len);if(ans<10) break;sprintf(s2, "%d", ans);cout<<s2<<endl;string s3(&s2[0],&s2[strlen(s2)]);s=s3;}cout<<ans;return 0;
}

第九题

问题描述:
  小蓝站在一个 n 行 m 列的方格图中间,方格图的每一个方格上都标有一个正整数。
  如果两个相邻方格(上下左右四个方向相邻)内的数的最大公约数大于 1 ,则可以从其中一个方格移动到另一个方格,当然也可以从另一个方格移回第一个方格。
  假设小蓝开始时站在第 r 行第 c 列,请问小蓝可以移动到方格图内的多少个方格?
输入格式:
  输入的第一行包含两个整数 n, m ,用一个空格分隔,表示方格图的行数和列数。
  接下来 n 行,每行包含 m 个正整数,相邻整数间用一个空格分隔,依次表示方格图中从第 1 行到第 n 行,每行从第 1 列到第 m 列中的数。
  接下来一行包含两个整数 r, c,用一个空格分隔,表示小蓝所在的行号和列号。
输出格式:
  输出一行包含一个整数,表示答案。
样例输入:
3 4
3 6 5 5
2 4 3 5
7 8 3 8
3 2
样例输出:
5
评测用例规模与约定:
  对于50%的评测用例,1 <= n, m <= 100,方格图中的每个数不超过 10**5 (10的5次方)。
  对于所有评测用例,1 <= n, m <= 1000,方格图中的每个数不超过 10**9 (10的9次方)。

Code:

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;const int N =1010;int g[N][N];
int n,m;
int x,y;
int num;
bool st[N][N];
int a[4]={1,-1,0,0};
int b[4]={0,0,-1,1};
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
void dfs(int x,int y)
{for(int i=0;i<4;i++){int x1=x+a[i];int y1=y+b[i];if(x1>=1&&x1<=n&&y1>=1&&y1<=m&&gcd(g[x][y],g[x1][y1])>1&&!st[x1][y1]){st[x1][y1]=true;dfs(x1,y1);}}return ;
}
int main()
{    cin>>n>>m;for(int i = 1; i <= n;i++){for(int j = 1; j <= m; j ++ ){scanf("%d",&g[i][j]);}}cin>>x>>y;dfs(x,y);for(int i = 1; i <= n;i++){for(int j = 1; j <= m; j ++ ){if(st[i][j])num++;}}cout<<num;return 0;
}

第十题

问题描述:
  给定一个序列 a[1], a[2], …, a[n] 和一个整数 k,请找出一个长度正好为 k 的区间,使得区间中所有数的和最大。
  即要找到一个整数 p ,使得 1 <= p 且 p+k-1 <= n ,使得 a[p]+a[p+1]+...+a[p+k-1] 最大。
输入格式:
  输入的第一行包含两个整数 n , k。
  第二行包含 n 个整数,相邻的整数之间使用一个空格分隔,表示给定的序列。
输出格式:
  输出一行包含一个整数,表示最大的区间和,你只需要输出和就行,不需要输出方案。
样例输入:
6 3
2 3 9 1 9 5
样例输出:
19
评测用例规模与约定:
  对于 30% 的评测用例,1 <= k <= n <= 30,1 <= a[i] <= 100。
  对于 60% 的评测用例,1 <= k <= n <= 1000,1 <= a[i] <= 10000。
  对于所有评测用例,1 <= k <= n <= 100000,1 <= a[i] <= 1000000。

Code:

#include<cstdio>
using namespace std;
int n,k,x;
long long sum[1000005];int main()
{scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%d",&x);sum[i]=sum[i-1]+x;//预处理前缀和}long long ans=-1;int ansl,ansr;int l=1,r=l+k-1;while(r<=n){//sum[r]-sum[l-1]表示l到r的区间和int tmp=sum[r]-sum[l-1];if(tmp>ans){ans=tmp;ansl=l,ansr=r;//更新答案}l++;r++;}//printf("%d %d %lld",ansl,ansr,ans);cout<<ans<endl;return 0;
}

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

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

相关文章

voc获取文件夹下所有文件的文件名(去掉后缀)

import osdef get_file_names(folder_path rC:\Users\mage\Desktop\Timer\Segformer\datasets\ImageSets\JPEGImages, output_file_name test.txt):# 获取文件夹下所有文件的文件名&#xff08;去掉后缀&#xff09;file_names [os.path.splitext(file)[0] for file in os.l…

94.STM32外部中断

目录 1.什么是 NVIC&#xff1f; 2.NVIC寄存器 3.中断优先级 4.NVIC的配置 设置中断分组​编辑 配置某一个中断的优先级 5.什么是EXTI 6.EXTI和NVIC之间的关系 7.SYSCFG 的介绍 1.什么是 NVIC&#xff1f; NVIC是一种中断控制器&#xff0c;主要用于处理 ARM Cort…

自动化框架错误排查:本地全通过,pipline上大部分报错

现象: 最近经过一次切环境和验证码部分的代码重构,果不其然,我们的自动化框架就出错了 我在本地修改调试,并在堡垒机上全部跑过 但在pipline上则大部分报错 进一步排查 这么多case报错,而且报错log都一模一样,推断是底层出错 我在堡垒机上使用命令行来跑case,发现与…

时序预测 | Python实现GA-TCN-LSTM遗传算法-时间卷积神经网络-长短期记忆网络时间序列预测

时序预测 | Python实现GA-TCN-LSTM遗传算法-时间卷积神经网络-长短期记忆网络时间序列预测 目录 时序预测 | Python实现GA-TCN-LSTM遗传算法-时间卷积神经网络-长短期记忆网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 使用先进的机器学习技术和优化算法…

【C++ regex】C++正则表达式

文章目录 前言一、正则表达式是什么&#xff1f;二、<regex>库的基础使用2.1 第一个示例2.1 <regex>库的函数详解std::regex_matchstd::regex_searchregex_search 和 regex_match 的区别std::regex_replacestd::regex_iterator 和 std::sregex_iterator&#xff1a…

❀My学习Linux命令小记录(13)❀

目录 ❀My学习Linux命令小记录&#xff08;13&#xff09;❀ 51.su指令 52.sudo指令 53.shutdown指令 54.reboot指令 55.poweroff指令 ❀My学习Linux命令小记录&#xff08;13&#xff09;❀ 51.su指令 功能说明&#xff1a;用于切换当前用户身份到其他用户身份。 &am…

MacBook Pro 安装Nacos【超详细图解】

目录 一、安装Nacos 二、启动nacos 三、进入可视化界面 因项目用到nacos&#xff0c;所以需要装一个&#xff0c;顺便写篇文章记录 一、安装Nacos 前往官网下载&#xff1a;Nacos官网homehttps://nacos.io/zh-cn/ # 解压 unzip nacos-server-2.3.0.zip 二、启动nacos …

怎么测试服务器的访问速度

一个网站的好坏&#xff0c;很大一部分原因是由于网站空间的稳定决定的。现在互联网发展十分迅速&#xff0c;网络宽带速度也非常快&#xff0c;流畅的 网站让用户对网站的打开时间要求也越来越高。如果一个网站它打开时间超过了5秒以上&#xff0c;那么极有可能会让访问用户关…

Collection集合的遍历方式-迭代器,增强for循环,Lambda

集合体系概述 Collection是单列集合的祖宗&#xff0c;它规定的方法&#xff08;功能&#xff09;是全部单列集合都会继承的 public class Work1 {public static void main(String[] args) {//简单认识一下Collection集合的特点ArrayList<String> list new ArrayList&…

【Vue2】Vue的介绍与Vue的第一个实例

文章目录 前言一、为什么要学习Vue二、什么是Vue1.什么是构建用户界面2.什么是渐进式Vue的两种开发方式&#xff1a; 3.什么是框架 三、创建Vue实例四、插值表达式 {{}}1.作用&#xff1a;利用表达式进行插值&#xff0c;渲染到页面中2.语法3.错误用法 五、响应式特性1.什么是响…

mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续

引言&#xff1a; 在使用MySQL数据库时&#xff0c;有时候我们需要删除某些记录&#xff0c;但是删除记录后可能会导致表中的id不再连续排序。 如何实现删除记录后让id重新排序的功能。 如图&#xff1a; 删除数据后&#xff0c;中间的id不会自动连续。 下面有两种方法进行重…

医院绩效系统源码:基础数据管理、核算方法和分配规则、KPI评分公式等功能

医院绩效管理系统源码&#xff0c;医院绩效管理数据采集的自动化和绩效评估数字化 医院绩效管理系统以国家医院绩效管理考核政策法规为依据&#xff0c;结合医院管理实践&#xff0c;以经济管理指标为核心&#xff0c;医疗质量、安全、效率、效益管理为重点&#xff0c;特别强调…

阿里云虚拟机安装nginx容器步骤

1、申请虚拟机&#xff0c;操作系统选择centos 7.6&#xff0c;自带阿里云yum源。 2、安装yum工具 yum install -y yum-utils 3、添加docker 源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4、安装docker yum -y insta…

头哥实践平台----HBase 开发:使用Java操作HBase

一.第1关&#xff1a;创建表 1.先写命令行 start-dfs.shstart-hbase.shhadoop fs -ls /hbase(可有可无)2.再写代码文件 package step1;import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impor…

unity3d模型中缺失animation

在 模型的Rig-Animationtype 设置成Legacy https://tieba.baidu.com/p/2293580178

时间戳,标准时间之间的转化

一. 获取时间戳 方法一&#xff1a;Date.now() console.log(Date.now()) // 1701676212978方法二&#xff1a;Date.parse() Date.parse()将字符串或者时间对象直接转化成时间戳&#xff1a; Date.parse(new Date()) // 1701676571000 Date.parse("2023/12/04 15:53"…

回文串+动态规划

最长回文子串 遍历字符串&#xff0c;逐个判断每个字符&#xff0c;向两边扩散&#xff0c;判断以当前字符为中心&#xff0c;最长回文大小。 /*** ①中心扩散法* 向左 向右 向左右* ②动态规划优化* 空间换时间*/ class Solution {public static void main(String[] args) …

OWASP SAMM 软件保障成熟度模型

软件保障成熟度模型 我们的使命是为您提供一种有效且可衡量的方式来分析和改进您的安全开发生命周期。 SAMM 支持完整的软件生命周期&#xff0c;并且与技术和流程无关。我们构建的 SAMM 本质上是不断发展和风险驱动的&#xff0c;因为没有一种单一的配方适用于所有组织。奥瓦…

【图像拼接】论文精读:Pixel-wise Deep Image Stitching(PWM+SIGMo)

第一次来请先看这篇文章:【图像拼接(Image Stitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用说明、创新思路分享等(不定期更新) 图像拼接系列相关论文精读 Seam Carving for Content-Aware Image ResizingAs-Rigid-As-Possible Shape ManipulationAdap…