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

第一题 计算 答案:108

std::cout<<36*30/10;

第二题 快速幂 答案:608

#include<bits/stdc++.h>
const int mod=1e3;
#define int long long
int qmi(int a,int b)
{
	int res=1;
	while(b)
	{
		if(b&1) res=(res*a)%mod;
		b>>=1;
		a=a*a%mod;
	}
	return res%mod;
}
signed main()
{
	std::cout<<qmi(2,2023);
	
    return 0;
}

这题python一行输出语句就好了,但是c里面会溢出。 

没学过快速幂就循环2023次就好了。

第三题 进制转换 答案:4169

#include<bits/stdc++.h>
#define LL long long
int cnt;
int trans(int a,int x)//转成x进制 
{
	int sum=0;
	while(a/x)
	{
		sum+=a%x;
		a=a/x;
	}
	sum+=a;
	return sum;
}
signed main()
{
	for(int i=1;i<=10000000;i++)
	{
		if(trans(i,2)==trans(i,8))
		{
			cnt++;
			std::cout<<i<<'\n';
		}
		if(cnt==23)
		{
			break;
		}
	}	
    return 0;
}

 

第四题 约数个数 答案:901440

#include<bits/stdc++.h>
#define LL long long
int a[]={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};

signed main()
{
	int maxn=-1;
	int ans=0;
	for(auto x:a)
	{
		int cnt=2;
		for(int i=2;i<x;i++)
		{
			if(x%i==0) cnt++;
		}
		if(cnt>maxn)
		{
			maxn=cnt;
			ans=x;
		}
	}
	std::cout<<ans;
    return 0;
}

 

第五题 BFS 答案:541

#include<bits/stdc++.h>
#define LL long long
const int N=50;
char g[N][N]={"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"};
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int cnt;
typedef std::pair<int,int> PII;
#define fir first
#define sec second 
void bfs(int x,int y)
{
	std::queue<PII> q;
	q.push({x,y});
	while(!q.empty())
	{
		auto t=q.front();
		q.pop();
		g[t.fir][t.sec]='2';
		cnt++;
		for(int i=0;i<4;i++)
		{
			int a=t.fir+dx[i],b=t.sec+dy[i];
			if(a<0||b<0||a>29||b>39) continue;
			if(g[a][b]!='0') continue;
			
			g[a][b]='2';
			q.push({a,b});
		}
	}
	return ;
}
signed main()
{
	bfs(0,0);
	std::cout<<cnt;
    return 0;
}

第六题 模拟

#include<bits/stdc++.h>
#define LL long long
const int N=50;
signed main()
{
	int n;
	std::cin>>n;
	std::string s=std::to_string(n);
	s=s+s;
	for(int i=1;i<7;i++)
		std::cout<<s[i];
	
    return 0;
}

第七题 模拟

#include<bits/stdc++.h>
#define LL long long
const int N=50;
std::map<char,int> mp;
signed main()
{
	std::string s;
	std::cin>>s;
	mp['a']=mp['e']=mp['i']=mp['o']=mp['u']=1;
	char ans;
	for(int i=0;i<s.length();i++)
		if(mp[s[i]]) ans=s[i];
		
	std::cout<<ans;
    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次方)。

我想复杂了,甚至不需要高精度,1e18 longlong就够了。 

#include <bits/stdc++.h>
#define int long long
const int N = 2e6 + 10;
int calc(std::string s)
{
    int x=1;
    for(int i=0;i<s.size();i++)
        if(s[i]!='0') x*=(s[i]-'0');
    return x;
}
signed main()
{
    int a;
    std::cin>>a;
    while(a>10)
    {
        std::string s=std::to_string(a);
        a=calc(s);
        std::cout<<a<<'\n';
    }
}

第九题 BFS

问题描述

  小蓝站在一个 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次方)。

#include<bits/stdc++.h>
const int N=1e3+10;
typedef std::pair<int,int> PII;
#define fir first
#define sec second
int n,m;
int g[N][N];
int cnt;
bool st[N][N];
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
void bfs(int x,int y)
{
    std::queue<PII> q;
    q.push({x,y});
    st[x][y]=true;
    cnt++;
    while(!q.empty())
    {
        auto t=q.front();
        q.pop();
        st[t.fir][t.sec]=true;
        for(int i=0;i<4;i++)
        {
            int a=dx[i]+t.fir;
            int b=dy[i]+t.sec;
            if(st[a][b]) continue;
            if(a<1||b<1||a>n||b>m) continue;
            if(std::__gcd(g[a][b],g[t.fir][t.sec])<=1) continue;
            st[a][b]=true;
            cnt++;
            q.push({a,b});
        }
    }
}
signed main()
{
    std::cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++) std::cin>>g[i][j];
    }
    int r,c;
    std::cin>>r>>c;
    bfs(r,c);
    std::cout<<cnt;
    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。

 要记得开long long

#include<bits/stdc++.h>
const int N=100000+10;
typedef long long ll;
int n,k;
int a[N];
signed main()
{
    std::cin>>n>>k;
    for(int i=1;i<=n;i++) std::cin>>a[i];

    ll maxn=-1e9;
    ll sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=a[i];
        if(i>k) sum-=a[i-k];
        maxn=std::max(maxn,sum);
    }
    std::cout<<maxn;
    return 0;
}

出这期主要是因为好多人私信要,不得不说蓝桥杯的流量真大。

然后因为没有oj评测,只保证过样例,欢迎大佬指正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据库】基于封锁的数据库调度器,以及等待锁处理的优先级策略

封锁调度器的体系结构 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会…

Redis中分布式锁的使用

在分布式系统中&#xff0c;如果使用JVM中的同步锁在高并发的场景下仍然会产生线程安全问题。首先我们来查看在多个服务器时为什么会产生线程安全问题&#xff0c;有这样一个案例&#xff0c;有一件商品购买规则为一个用户只能购买一次&#xff0c;如果使用同步锁锁住用户id&am…

C# Spire操作Excel数据透视表

一、概述 数据透视表&#xff08;Pivot Table&#xff09;是一种交互式的表&#xff0c;可以进行某些计算&#xff0c;如求和与计数等&#xff0c;可动态地改变透视表版面布置&#xff0c;也可以重新安排行号、列标和页字段。当改变版面布置时&#xff0c;数据透视表也会按照新…

PMP-01

考纲 需要看的书籍 学习计划

奇技淫巧第9期

今天回顾一下 5~12 月所遇到的零碎知识点。 文章目录 歪门邪道优雅删除“学习资料”快速下载 vscode两种硬盘格式zotero在word中插入参考文献markdown 下划线查看 CPU Linux 命令postgres 无法通过 root 用户操作bash 初学者礼包gitwin 11 edge 浏览器0x80190001 报错 python …

Pycharm调用Conda虚拟环境

参考这个链接的评论区回答&#xff1a;Pycharm调用Conda虚拟环境 笑死&#xff0c;我之前也是这样的&#xff0c;不过好像也能用&#xff0c;搞不懂~

蓝桥杯每日一题2023.12.2

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 答案&#xff1a;3598180 由题目分析可以知道&#xff0c;给小明发的牌一共有13种类型&#xff0c;每种类型的牌一共有四张。对于每种牌&#xff0c;我们都有5种选择&#xff0c;不拿、拿一张、…

WebGL笔记:矩阵缩放的数学原理和实现

矩阵缩放的数学原理 和平移一样&#xff0c;以同样的原理&#xff0c;也可以理解缩放矩阵让向量OA基于原点进行缩放 x方向上缩放&#xff1a;sxy方向上缩放&#xff1a;syz方向上缩放&#xff1a;sz 最终得到向量OB 矩阵缩放的应用 比如我要让顶点在x轴向缩放2&#xff0c;y轴…

ArrayList 与 顺序表 (附洗牌算法)!

曾经我也是一枚学霸&#xff0c;直到有一天想去学渣的世界看看&#xff0c;结果就找不到回去的路了。 目录 1. 线性表 2.顺序表 2.1 接口的实现 3. ArrayList简介 4. ArrayList使用 4.1 ArrayList的构造 4.2 ArrayList常见操作 4.3 ArrayList的遍历 4.4 ArrayList的扩…

分享66个焦点幻灯JS特效,总有一款适合您

分享66个焦点幻灯JS特效&#xff0c;总有一款适合您 66个焦点幻灯JS特效下载链接&#xff1a;https://pan.baidu.com/s/10bqe09IAZt_hbsZlXaxkxw?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

万能的视频格式播放器

今天博主给大家带来一款“万能”的视频播放器——VLC Media Player&#xff0c;支持的文件格式非常多&#xff0c;大家快来一起看看吧&#xff01; VLC Media Player 是一款可播放大多数格式&#xff0c;而无需安装编解码器包的媒体播放器。可以播放 MPEG-1、MPEG-2、MPEG-4、D…

Tektronix泰克示波器

一、what’s the oscilloscope&#xff1f; 【ref】https://www.tek.com.cn/blog/what-is-an-oscilloscope 二、基础知识 1、带宽&#xff1a;100Mhz&#xff1b;采样率&#xff1a;2.5GS/s 1GS/s指的是采样率&#xff0c;前面大写的S是sample采样的意思 后面的s是秒 也就是示波…

粉丝提问:岗位与描述不一致,小公司感觉学不到东西,工作内容就是调试,想辞职

0、粉丝问题&#xff1a; 大哥&#xff0c;我毕业已经工作两个月了&#xff0c;在一家小公司&#xff0c;岗位和描述的不一致&#xff0c;感觉就像调试一样&#xff0c;写代码的机会很少也没人带&#xff0c; 我想转嵌入式&#xff0c;您有什么建议的方向吗&#xff0c;或者是…

MathType公式编辑器安装教程

一、下载 MathType7是一款可以帮助用户快速完成数学公式编辑的应用软件&#xff0c;这款软件适合在进行教育教学、科研机构、论文写作的时候使用。我们可以直接通过这款软件来获取到大量数学上使用到的函数、数学符号等内容&#xff0c;然后使用这些内容来完成公式编辑。 …

玩转大数据4:大数据的崛起与应用领域探索

图片来源网络 引言 在当今数字化时代&#xff0c;大数据正以前所未有的速度和规模崛起。大数据的出现不仅改变了企业和组织的经营模式&#xff0c;也对我们的社会生活带来了深刻的影响。Java作为一种广泛使用的编程语言&#xff0c;在大数据领域发挥着重要的作用。本文将重点…

自动驾驶学习笔记(十三)——感知基础

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 传感器 测距原理 坐标系 标定 同…

初识Linux:保姆级教学,让你一秒记住Linux中的常用指令!

文章目录 前言一、LInux的背景及发展史二、Linux下的基本指令1、ls指令2、pwd指令3、cd指令4、touch指令5、mkdir指令&#xff08;重要&#xff09;6、tree指令7、rmdir指令和rm指令&#xff08;重要&#xff09;8、man指令&#xff08;重要&#xff09;9、cp指令&#xff08;重…

操作PDF相关的工具,EPUB转PDF,golang

unipdf 安装依赖 go get github.com/unidoc/unipdf/v3 示例代码 https://github.com/unidoc/unipdf-examples 获取KEY 登录 https://cloud.unidoc.io/ 注册账号&#xff0c;生成 KEY&#xff0c;但是需要收费。 chromedp 使用Golang编写&#xff0c;主要功能是调用浏览器内…

【面试攻略】Oracle中blob和clob的区别及查询修改方法

大家好&#xff0c;我是小米&#xff0c;欢迎来到小米的技术小屋&#xff01;今天我们要一起来聊聊一个在面试中常常被问到的问题——“Oracle中Blob和Clob有啥区别&#xff0c;在代码中怎么查询和修改这两个类型的字段里的内容&#xff1f;”别急&#xff0c;跟着小米一步步揭…

Android11适配已安装应用列表

Android11适配已安装应用列表 之前做过已安装应用列表的适配&#xff0c;最近国内版SDK升级到33和隐私合规遇到很多问题&#xff0c;于是把已安装应用列表记录一下&#xff1a; 1、在Android11及以上的适配&#xff1a; package com.example.requestinsttallapplistdemoimpo…