蓝桥杯真题31日冲刺国一

2023-11-07

大家好,我是泡泡,接下来几天每天都有复习

目录

今日练习专题:

一丶成绩统计

二丶既约分数

三丶最优包含

复习专题:

一丶空间

二丶等差数列

三丶回文日期

四丶青蛙跳杯子


今日练习专题:

一丶成绩统计

题目链接:成绩统计 - 蓝桥云课 (lanqiao.cn)

题目要求:

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

解题思路:

这是一道求及格率和优秀率的题目,我们选择使用printf来输出答案,把得出来的整数型换成浮点再输出。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	int num = 0, sum = 0; 
	cin >> n;
	for(int i=0;i<n;i++)
	{
		int x;
		cin>>x;
		if(x>=60)
		{
			num++;
		}
		if(x>=85)
		{
			sum++;
		}
	}
	printf("%.0lf%%\n%.0lf%%",(num*100.0)/(n*1.0),(sum*100.0)/(n*1.0));
	return 0;
}

二丶既约分数

题目链接:既约分数 - 蓝桥云课 (lanqiao.cn)

题目要求:

如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。

例如 4/3​,8/1​,1/7​, 都是既约分数。

请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)?

解题思路:

直接用欧几里得求就完事了,这是简单数论应该都会。

#include<stdio.h>
#include<algorithm>
using namespace std;
int gcd(int a,int b)
{
	if(a%b==0)
	{
		return b;
	}
	return gcd(b,a%b);
}
int main()
{
    int ans=0;
    for(int i=1;i<=2020;i++)
	{
        for(int j=1;j<=2020;j++)
		{
            if(gcd(i,j)==1)
            {
			    ans++;
        	}
		}
    }
    printf("%d",ans);
}

三丶最优包含

题目链接:最优包含 - 蓝桥云课 (lanqiao.cn)

题目要求:

我们称一个字符串 S 包含字符串 T 是指 T 是 S 的一个子序列,即可以从字符串 S 中抽出若干个字符,它们按原来的顺序组合成一个新的字符串与 T 完全一样。

给定两个字符串 S 和 T,请问最少修改 S 中的多少个字符,能使 S 包含 T ?

其中,1≤∣T∣≤∣S∣≤1000。

解题思路:

dp,闫氏dp分析!

状态表示:f[i,j]

集合:S串中前i个字符,包含有T串中前j个字符最少需要修改的字符个数

属性:min

状态计算:

如果S[i]=T[j] ,那么T的最后一位要么和S[i]相等,要么和前面的相等,得出公式为:f[i][j] = min(f[i-1][j],f[i-1][j-1]);

如果S[i]!=T[j],那么让T[j]和S串前面的字符一样,或者修改S[i],得出公式:f[i][j]= min(f[i-1][j-1]+1,f[i-1][j])

状态转移方程就出来了 然后就是输入 初始化 因为下标从0开始,所以我们+1,求最小初始化正无穷,每次初始化第一个为0,然后就套公式。

#include<bits/stdc++.h>
using namespace std;
char a[1000],b[1000];
int f[1000][1000];
int main()
{
    cin>>a+1>>b+1;
    int l1=strlen(a+1);
    int l2=strlen(b+1);
    memset(f,127,sizeof f);
    f[0][0]=0;
    for(int i=1;i<=l1;i++)
	{
        f[i][0]=0;
        for(int j=1;j<=l2;j++)
		{
            if(a[i]==b[j]) 
			{
				f[i][j]=min(f[i-1][j],f[i-1][j-1]);
            }
			else 
			{
				f[i][j]=min(f[i-1][j],f[i-1][j-1]+1);
        	}
		}
    }
    cout<<f[l1][l2];
    return 0;
}

复习专题:

一丶空间

题目链接:空间 - 蓝桥云课 (lanqiao.cn)

题目要求:

小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?

解题思路:

简单的手算,1mb1024kb 1kb1024b 1b=8bit

(256 * 1024 * 1024 * 8)/32

二丶等差数列

题目链接:等差数列 - 蓝桥云课 (lanqiao.cn)

题目要求:

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。

现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

解题思路:

主要是复习一下等差数列这种简单数学题,不要忘了做法

#include<bits/stdc++.h>
using namespace std;
//就是对它先排序找出最小的差,那就是等差数列差,
//要注意的一点就是要判断一下它的差是不是0,如果是0的话最小就是n个。
int a[100001];
int main()
{
    int n;
    cin>>n;
    int x = INT_MAX;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=1;i<n;i++)
    {
        x = min(a[i]-a[i-1],x);//找到最小的差 就是等差数列的差 
    }
    if(!x)
    {
        cout<<n;//如果差是0 最小就是n个 
    }
    else
    {
        int sum = (a[n-1]-a[0])/x+1;//如果不是0 那就让最大的数-最小的数并且除以该差+1 
        cout<<sum;
    }
    return 0;
}

三丶回文日期

题目链接:回文日期 - 蓝桥云课 (lanqiao.cn)

题目要求:

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,顶多算 “千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

解题思路:

大模拟!!!懂得都懂

#include<bits/stdc++.h>
using namespace std;
int pd(int x,int y)
{
    switch(y)
    {
        case 2:
            if((x%4==0&&x%100==1)||x%400==0)
                return 29;
            else
                return 28;
            break;
        case 1:
        case 3:
        case 5:
        case 7:
        case 8: 
        case 10:
        case 12:
            return 31;
        default:
            return 30;
    }
}
void print(int a,int b,int c)
{
    cout<<a;
    if(b<10)
    {
        cout<<"0"<<b;
    }
    else
    {
        cout<<b;
    }
    if(c<10)
    {
        cout<<"0"<<c<<endl;
    }
    else
    {
        cout<<c<<endl;
    }
}
int main()
{
	int n,y,r;
	scanf("%4d%2d%2d",&n,&y,&r);
	int flag = 0;
	for(int i=n;i;i++)
	{
		int m = n%10*10+n/10%10;
		int z = i/100%10*10+i/1000;
		if(i>n)
		{
			if(m<=12&&m>=1&&z<=pd(i,m))
            {
                if(flag==0)
                {
                    print(i,m,z);
                    flag = 1;
                }
                if(i/1000==i/10%10&&i/100%10==i%10)
                {
                    print(i,m,z);
                    break;
                } 
        	}
        	else
        	{
            	if(m<=12&&m>=1&&z<=pd(i,m))
            	{
                	if(flag==0)
                	{
                   		print(i,m,z);
                    	flag = 1;
                	}
                	if(i/1000==i/10%10&&i/100%10==i%10)
                	{
                    	print(i,m,z);
                    	break;
                	}    
           		}
			}
		}
	}
	return 0;
}

四丶青蛙跳杯子

题目链接:“蓝桥杯”练习系统 (lanqiao.cn)

题目要求:

  X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。
  X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。
  如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。

  *WWWBBB

  其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。

  X星的青蛙很有些癖好,它们只做3个动作之一:
  1. 跳到相邻的空杯子里。
  2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。
  3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。

  对于上图的局面,只要1步,就可跳成下图局面:

  WWW*BBB

  本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面。

解题思路:

bfs变种,需要用map

#include<bits/stdc++.h>
using namespace std;
struct node{
	string s;
	int x;
	int d;
};
map<string,bool>vis;
int dx[6] = {-1,1,-2,2,-3,3};
string s,t;
void bfs(int x)
{
	node now,next;
	now.x = x,now.d = 0,now.s = s;
	queue<node>q;
	q.push(now);
	vis[now.s] = 1;
	while(q.size())
	{
		now = q.front();
		q.pop();
		if(now.s == t)
		{
			cout<<now.d;
			return;
		}
		for(int i=0;i<6;i++)
		{
			next.x = now.x + dx[i];
			if(next.x >= 0 && next.x < s.size())
			{
				next.s = now.s,next.d = now.d + 1;
				swap(next.s[now.x],next.s[next.x]);
				if(!vis[next.s])
				{
					q.push(next);
					vis[next.s] = 1;
				}
			}
		}
	}
}
int main()
{
	cin>>s>>t;
	int x = s.find('*');
	bfs(x);
	return 0;
}

还有八天!!冲!!!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯真题31日冲刺国一 的相关文章

  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • 元组在 VS2012 中如何工作?

    Visual Studio 2012 功能 tuples但不是可变参数模板 这是如何完成的 如何在不使用可变模板的情况下实现元组 简而言之 微软做了与之前在 NET 中实现类似元组的数据类型完全相同的事情 创建许多版本 每个版本都有固定数量
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将日期时间转换为指定格式

    我有这个日期格式yy MM dd HH mm ss ex 12 02 21 10 56 09 问题是 当我尝试使用以下代码将其转换为不同格式时 CDate 12 02 21 10 56 09 ToString MMM dd yyyy HH
  • C# 编译器数字文字

    有谁知道 C 编译器数字文字修饰符的完整列表 默认情况下 声明 0 使其成为 Int32 声明 0 0 使其成为 Double 我可以在末尾使用文字修饰符 f 来确保某些内容被视为 Single 例如像这样 var x 0 x is Int
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • Linq.Select() 中的嵌套表达式方法调用

    I use Select i gt new T 每次手动点击数据库后将我的实体对象转换为 DTO 对象 以下是一些示例实体和 DTOS 用户实体 public partial class User public int Id get set
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • 这种尺寸对齐是如何工作的

    对于所提供的评论 我无法理解以下代码 这段代码的作用是什么 以及等效的代码是什么8 aligned segment size must be 4 aligned attr gt options ssize 3 Here ssize is o
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost

随机推荐

  • linux学习文档

    汇总 链接 http pan baidu com s 1pLk8SSr 密码 p6b6 如有帮助 还请不吝 推荐 1 1 2序和硬件基础 pdf 链接 http pan baidu com s 1kVFjoTh 密码 powh 2 3中断机
  • Ubuntu安装NVIDIA 显卡驱动

    文章目录 前言 一 基本概念 二 操作步骤 1 显卡硬件型号 2 安装驱动 总结 前言 NVIDIA Nvidia Corporation n v di 港称乎为NVIDIA 台湾与香港译为辉达 中国大陆译为英伟达 创立于1993年1月 是
  • 使用JavaScript在水效果中创建动画粒子

    Water simulation with javascript Today we continue JavaScript lessons and our article will about using js in modeling of
  • ES6module

    开发规范 声明式函数应设置为常量 对象尽量静态化 一旦设置不得随意添加新的属性 或者使用Object assign 默认导出一个对象用大驼峰 函数的默认值 function test a b bool false console log b
  • Python 和 Raspberry Pi 基于 Ubuntu Core 实践 ROS 系统

    我们将使用 Ubuntu Core 并在 Raspberry Pi 上安装 Ubuntu Core 使用Python 创建基于 ROS 的工作包和启动文件 Ubutun Core 介绍和安装 Ubuntu Core 是 Ubuntu 的专门
  • JavaSE基础语法之 String 类

    目录 前言 一 常用方法 一 字符串构造 二 String 对象的比较 1 比较是否引用同一个对象 2 boolean equals Object anObject 方法 按照字典序比较 3 int compareTo String str
  • 图的深度优先遍历

    一 图遍历介绍 所谓图的遍历 即是对结点的访问 一个图有那么多个结点 如何遍历这些结点 需要特定策略 一般有两种访问策略 1 深度优先遍历 2 广度优先遍历 二 深度优先遍历基本思想 图的深度优先搜索 Depth First Search
  • hive-sql入门-实践摘记-持续更新

    Hive SQL记录 DQL Data QueryLanguage 只读权限 select DML Data manipulation language 数据操作语句 insert delete update DDL Data Defini
  • 【idea】IDEA全局搜索Jar包中内容(转载)

    转载 https blog csdn net qq 26012495 article details 109694133
  • ChatGPT研究分享:插件模式的利与弊

    目录 1 插件的实现方式 1 1 Toolformer 1 2 OpenAI插件文档 1 3 个人感想 2 一些有意思的点 2 1 知识和价值观 2 2 算法的研究方向 OpenAI近期公开了GPT 4 除了各方面性能的大幅度提升 最大的惊
  • shell中单引号、双引号的区别

    原文地址 http blog sina com cn s blog 5f5716580100l9k1 html hard quote 单引号 关闭所有的meta 什么是meta 自己查吧 soft quote 双引号 关闭大部分的meta
  • mysql中对视图的一系列操作

    一 知识讲解 1 数据库只储存视图的定义 不储存视图所对应的数据 2 视图可以进行插入 查询 删除和更新数据等操作 但是with check option 会对 where 子句中的条件 对其所进行的操作进行检查 3 当视图依赖多个基本表时
  • sqli-labs-master第15、16关

    前言 在第九关我们已经了解过GET方式的盲注 我们今天一起探讨下POST方式的盲注 第15关 http 192 168 89 134 sqli labs master Less 15 我们在尝试了 联合查询和报错注入方式后无果 我们初步判断
  • 调用存储过程并且使用返回值的基本方法

    调用存储过程并且使用返回值的基本方法 一直没有找到一种好的方法来引用有返回值的存储过程的方法 使我在添加数据中走了不少的弯路 最近 在查阅了大量的资料之后 终于在微软的一个实例中找到了一种良好的方法 首先编写好一有返回值的存储过程 crea
  • 宋浩-概率论与数理统计笔记

    有需要pdf版本的可以留言 没有更新假设检验部分 如有需要也可以更新
  • 技术博客能为你面试带来什么样的好处?

    作为一个老程序员 我看过的简历 面试过的程序员非常多 我直接说我的观点 写技术博客对面试中来说 有用 如果你有一个和岗位相关的的博客 Github 在我看来 这些能显得你这个人爱学习 爱总结分享 大厂里 很重视的一件事就是分享 分享经验 分
  • (18)语义分割--paddle--EISeg自动标注软件的使用和自己数据集的测试

    1 主要参考 1 使用过程 建议先看一下下面博主的视频 eiseg简单教学 哔哩哔哩 bilibili 2 软件使用 主要参考 百度飞浆EISeg高效交互式标注分割软件的使用教程 Leonard2021的博客 CSDN博客 安装eiseg
  • redis命令行操作五种数据类型

    这里写目录标题 1 redis有关key的操作命令 2 redis中关于string类型数据的操作命令 3 redis中关于list类型数据的操作命令 单key 多valu有序 4 redis中关于set类型数据的操作命令 单key 多va
  • 高数【连续、间断点】--猴博士爱讲课

    第二课 连续 间断点 函数连续不连续是要看区间的 1 3 证明f x 在某点连续 例一 试证明 f x
  • 蓝桥杯真题31日冲刺国一

    大家好 我是泡泡 接下来几天每天都有复习 目录 今日练习专题 一丶成绩统计 二丶既约分数 三丶最优包含 复习专题 一丶空间 二丶等差数列 三丶回文日期 四丶青蛙跳杯子 今日练习专题 一丶成绩统计 题目链接 成绩统计 蓝桥云课 lanqiao