2020年第十一届蓝桥杯第二场省赛B组C++题解

2023-11-05

2020年第十一届蓝桥杯第二场省赛B组C++题解

题单

第一题

小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
答案:624
代码描述:

#include<bits/stdc++.h>
using namespace std;
int ans; 
int isok(int n)
{
	int sum=0;
	while(n){
		int t=n%10;
		if(t==2) sum++;
		n/=10;
	}
	return sum;
}
int main()
{
	for(int i=1;i<=2020;i++){
		ans+=(isok(i));
	}
	cout<<ans;
	return 0;
}

第二题

如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
例如,3/4 , 5/2 , 1/8 , 7/1 都是既约分数。
请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)?

答案:2481215
代码描述

#include<bits/stdc++.h>
using namespace std;
int ans;

int gcd(int a,int b)
{
	return b==0?a:gcd(b,a%b);	
}

int main()
{
	for(int i=1;i<=2020;i++){
		for(int j=1;j<=2020;j++){
			if(gcd(i,j)==1) ans++;
		}
	}
	cout<<ans;
	return 0;
}

第三题

下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …

容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
答案:761
代码描述

#include<bits/stdc++.h>
using namespace std;
int next[4][2]={{0,1},{1,-1},{1,0},{-1,1}};
int a[55][55];
int main()
{
	int x=1,y=1,ans=1,t=0,k=-1;
	while(x!=40||y!=40){    //第二十行二十列可能需要到40行40列左右相加 
		a[x][y]=ans++;
		x+=next[t][0];
		y+=next[t][1];
		if(t==0||t==2)  k++;
		if(x<1||x>40||y<1||y>40||a[x][y]!=0||k==1){
			if(k==1) k=0;
			x-=next[t][0];
			y-=next[t][1];
			t=(t+1)%4;
			x+=next[t][0];
			y+=next[t][1];
		}
	}
	/*
	for(int i=1;i<=40;i++){
		for(int j=1;j<=40;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	*/
	cout<<a[20][20];
	return 0;
}

第四题

小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
答案:8879
题解思路:Excel大法好啊!!!
首先算出两者相隔的天数是7579天,因题目说第一天就开始跑了,所有加上1,总共跑的天数就是7580天,每天1公里,也就是7580公里了。
在这里插入图片描述
接着算上这7580天里共有几个周一,通过代码我们知道共有1083个周一,所以每周一再多跑1公里,总共就跑了7580+1083=8663公里。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int ans=0;
	for(int i=3;i<=7580;i+=7){  //当i=1时,此时为周六,咱们从i=3,
	                           //即下周一开始算起
		ans++;
	}
	cout<<ans;
	return 0;
}

然后在算上从2000/1/1到2020/10/1共有多少个月初。从数据上看我们知道一共有20年+10个月,所以总月份数位20*12+10=250个月(我塔喵算成20*24+10,绝望),也就是这250个月初里还要多跑250公里。所以总公里数为:8663+250=8913。
最后,如果月初和周一重合咱们也是只跑两公里的,通过日历(别问,问就是一个个数的)我们知道共有34个重合数,所以总公里数为:8913-34==8879

第五题

最后没时间了随便填了个28。。。考虑到DFS+连通块,但是不会建图。

第六题

小蓝给学生们组织了一场考试,卷面总分为100分,每个学生的得分都是一个0到100的整数。
如果得分至少是60分,则称为及格。如果得分至少为85分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整
数。

round(double x) 该函数用于将double型变量x四舍五入,返回类型也是double ,注意只能对小数点后一位进行 四舍五入

#include<bits/stdc++.h>
using namespace std;
int yx , jg;
int main()
{
	//round(double x) 该函数用于将double型变量x四舍五入,返回类型也是double ,注意
	//只能对小数点后一位进行 四舍五入
	
	int n , x;
	cin >> n;
	for(int i = 1 ; i <= n ; i ++){
		cin >> x;
		if(x >=85) yx ++;
		if(x >=60) jg ++;
	}
	printf("%d%\n%d%\n" , (int)round(jg * 100.0 / n) , (int)round(yx * 100.0 / n));
	
//	printf("%f %d %f %d" , round(3.5) , (int)round(3.45) , round(3.45 * 10) / 10 , (int)round(3.445 * 100));
	return 0;
}

第七题

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;
typedef long long ll;
int y , m , d , f1 , f2 , ans1 , ans2;
int Month[13][2] = {{0,0},{31,31},{30,30},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
int isrun(int year)
{
	return year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
}

int judge1(int sum)
{
	int a[20] , k = sum , cnt = 1;
	do{
		a[cnt ++] = sum % 10;
		sum /= 10;
	}while(sum);
	for(int i = 1 , j = cnt - 1 ; i < j ; i ++ , j --){
		if(a[i] != a[j]) return 0;
	}
	return 1;
}

int judge2(int sum)
{
	int a[20] , k = sum , cnt = 1;
	do{
		a[cnt ++] = sum % 10;
		sum /= 10;
	}while(sum);
	if(a[1] != a[3] || a[1] != a[6] || a[1] != a[8] || a[3] != a[6] || a[3] != a[8] || a[6] != a[8] ||
		a[2] != a[4] || a[2] != a[5] || a[2] != a[7] || a[4] != a[5] || a[4] != a[7] || a[5] != a[7] ||
		a[1] == a[2] || a[1] == a[4] || a[1] == a[5] || a[1] == a[7])
		return 0;
		return 1;
}
int main()
{
	int n ;
	cin >> n;
	y = n / 10000;
	m = n % 10000 / 100;
	d = n % 100;
	while(1){
		d ++;
		if(d > Month[m][isrun(y)]){
			d = 1;
			m ++;
			continue;
		}
		if(m > 13){
			m = 1;
			y ++;
			continue;
		}
		int ans = y * 10000 + m * 100 + d;
		if( f1 == 0 && judge1(ans) ){
			ans1 = ans;
			f1 = 1;	
		}
		if(f2 == 0 && judge2(ans)){
			ans2 = ans;
			f2 = 1;
		}
		if(f1 && f2) break;
	}
	printf("%04d%02d%02d\n" , ans1 / 10000 , ans1 % 10000 / 100 , ans1 % 100);
	printf("%04d%02d%02d" , ans2 / 10000 , ans2 % 10000 / 100 , ans2 % 100);
}

第八题

于一个字符串 S,我们定义 S 的分值 f (S ) 为 S 中出现的不同的字符个数。例如 f (”aba”) = 2, f (”abc”) = 3, f (”aaa”) = 1。
现在给定一个字符串 S [0::n ? 1](长度为 n),请你计算对于所有 S 的非空子串 S [i:: j](0 ≤ i ≤ j < n), f (S [i:: j]) 的和是多少
答:只会暴力
代码描述

#include<bits/stdc++.h>
using namespace std;
string s;
int book[100] , sum;
int main()
{
	cin >> s;
	int len = s.size();
	for(int i = 0 ; i < len ; i ++){
		int cnt = 0;
		for(int j = i ; j < len ; j ++){
			int word = s[j] - 'a';
			if(book[word] == 0){
				book[word] = 1;
				cnt ++;
			}
			sum += cnt;
		}
		fill(book , book + 100 , 0);
	}
	cout << sum;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020年第十一届蓝桥杯第二场省赛B组C++题解 的相关文章

  • 今日头条(OCPC)广告激活数据对接-JAVA版

    最近在今日头条投广告 头条反馈可以按照实际激活数据的转换来付费 也就是说 只有用户真的下载并打开应用了才收费 过程类似与早年间的GHOST系统预装软件 下面说下头条的整个逻辑 头条处理逻辑 1 用户在头条点击广告页 广告页引领用户去下载 用
  • Day4 Data Management II part1 ifelse/loop/function in R

    This article is based on R 4 1 2 1 ifelse if else a Identifying fulfilled conditions all condition Returns TRUE if the c
  • 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法

    Ansible自动化运维工具 Ansible变量之lookup生成变量方法 一 lookup插件介绍 1 lookup简介 2 lookup使用场景 3 lookup获取的数据源 4 lookup的注意事项 二 查看lookup支持的模块列
  • 2023WAIC大会后记:我们距离AGI还有多远?

    只有解决了算力问题 才能离大模型的商业化之路更进一步 等等问题 都在成为当下限制我们想象力的关键因素 继2023世界人工智能大会后 大模型还有多少想象力 作者 思杭 编辑 皮爷 出品 产业家 1亿用户 似乎是每个App都想踏过的 门槛 Ti
  • cadence的PCB封装库导入Altium designer

    目录 说明及作者联系方式 导入封装库说明 实例 导入cadence PCB文件 生成封装库 说明及作者联系方式 作者的软件是AD20 cadence是17 4 参考官方文档 官方文档原地址可点击此处跳转 作者还拥有个人公众号 会写一些感悟文
  • 静态链接与动态链接

    C代码编译生成可执行程序会经过如下过程 链接就是把目标文件与一些库文件生成可执行文件的一个过程 1 什么是静态链接 静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法 链接器是一个独立程序 将一个或多个库或目标文件 先前由编译器或
  • IDEA创建CLASS时自动生成头部文档注释

    注释效果 设置如下 if PACKAGE NAME PACKAGE NAME package PACKAGE NAME end parse File Header java ClassName NAME Author USER Descri
  • 经典css系列面试题。

    1 对BFC规范 块级格式化上下文 的理解 BFC 块级格式化上下文 一块独立的区域 有自己的规则 bfc中的元素与外界的元素互不影响 BFC是一块用来独立的布局环境 保护其中内部元素不受外部影响 也不影响外部 怎么触发BFC 1 floa
  • 降低电源纹波噪声的方法

    一 降低电源纹波噪声只需三步 降低电源纹波噪声只需三步 描述 在应用电源模块常见的问题中 降低负载端的纹波噪声是大多数用户都关心的 那么模块的纹波噪声该如何降低 下文为大家从纹波噪声的波形 测试方式 模块设计及应用的角度出发 阐述几种有效降
  • 服务器ibmc无法加载js文件,WEUI应用之JS常用信息提示弹层的封装

    weUI应用 自己用JS封装了几个常用的信息提示的弹层 测试页面的代码在后面有贴出 几个弹层如下图 HTML页面代码 weUI test 测试 function 提示弹层 取消关闭 确定做相应操作 dialog 标题1111111 内容11
  • ODrive踩坑(三)AS5047P磁编码器的ABI接口

    前两篇已经介绍过ODrive在Windows下的使用环境搭建 以及TLE5012B ABI编码器闭环运动的基本配置 ODrive教程资源导航 ODrive踩坑 一 windows下使用环境的搭建 odrivetool及USB驱动的安装 OD
  • Xftp使用root权限连接服务器时提示“ssh服务器拒绝了密码”

    参考网上很多方案修改过后还是不行 最终依据这篇博客修改后成功 原因是之前修改的配置文件不对 应该修改sshd config Xftp连接linux ubuntu 时提示ssh服务器拒绝了密码 请再试一次
  • MyBatis学习笔记:Mybatis简介

    MyBatis学习笔记 Mybatis简介 参考书籍 传统的JDBC编程 流程 缺点 Example ORM模型 Mybatis 起源 ORM模型 Example 参考书籍 深入浅出MyBatis技术原理与实战 ISBN 978 7 121
  • Unity--Awake()和Start()的区别

    Unity Awake 和Start 的区别 1 对象初始化之后先调用Awake 再调用Start 然后调用Update 2 无论脚本文件是否enable Awake 都会被调用 而Start 只在enable true的时候被调用 3 游
  • HttpClient上传文件

    1 Using the AddPart Method form表单上传两个文本 一个文件 上传文件及文本 throws ClientProtocolException throws IOException author ybwei Test
  • VSCode安装Esp-IDF开发环境(pip version)出错解决办法

    安装ESP IDF4 4 4版本出现如下错误 可以看出是pip版本问题 所以只需要在安装程序使用pip命令之前 完成pip的升级即可 好像下载4点几的版本会出现此警告 导致安装失败 而下面安装5 0 1版本的时候同样出现了此警告 但是能够安
  • day22 二叉树

    235 二叉搜索树的最近公共祖先 可以按照二叉树的最近公共祖先进行操作 也可以按照搜索树的特征 无需进行回溯 从上到下进行遍历 701 二叉搜索树中的插入操作 将固定的数值插入到合适的位置 450 删除二叉搜索树中的节点 分几种情况 删除节
  • 企业实践

    欢迎关注 全栈工程师修炼指南 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 文章目录 0x00 前言简述 什么是裸金属服务器 什么是IPMI 它的用途是什么 0x
  • (Java)leetcode-113 Path Sum II(路径总和 II)

    题目描述 给定一个二叉树和一个目标和 找到所有从根节点到叶子节点路径总和等于给定目标和的路径 说明 叶子节点是指没有子节点的节点 示例 给定如下二叉树 以及目标和 sum 22 5 4 8 11 13 4 7 2 5 1 返回 5 4 11

随机推荐

  • Pytorch 基于经典模型LeNet-5训练MNIST数据集手写数字

    LeNet 5简介 LeNet 5官网链接 卷积神经网络是一种特殊的多层神经网络 与几乎所有其他神经网络一样 它们使用反向传播算法版本进行训练 它们的不同之处在于架构 卷积神经网络旨在通过最少的预处理直接从像素图像中识别视觉模式 他们可以识
  • node + selenium-webdriver 进行Web自动化测试

    1 环境安装 nodejs安装 webdriver安装 安装各浏览器的驱动 通过各浏览器的驱动程序 操作浏览器 chrome 驱动安装 每个版本的浏览器用到的webdriver不同 可以通过chrome右上角 gt 帮助 gt 关于 Chr
  • 定义和声明的区别

    对于变量来说 定义就是声明 例如 int a 我们可是说它是定义也可以说它是声明 但是对于函数来说定义和声明完全不是一回事 void sum int a int b 这是函数的声明 void sum int a int b 整体是函数的定义
  • 纯代码的3D玫瑰花,有个这个还怕女朋友不开心?

    先上效果图 再上代码
  • 【hortonworks/registries】Parameter Schema name is null

    1 背景 修改了hortonworks registries的0 9版本的源码后 加入了json格式 然后部署后 添加schema的时候报错如下 INFO 2020 08 18 07 04 18 802 com hortonworks
  • es6之对象的扩展

    function getPoint const x 1 const y 10 return x y getPoint x 1 y 10 CommonJS 模块输出一组变量 就非常合适使用简洁写法 let ms function getIte
  • 【Metashape精品教程4】软件设置

    Metashape精品教程4 软件设置 文章目录 Metashape精品教程4 软件设置 前言 一 一般 二 GPU 三 网络 四 Appearance 五 高级 六 Agisoft Metashape1 8专业版用户手册 前言 Metas
  • C - 一只小蜜蜂...

    有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房 不能反向爬行 请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数 其中 蜂房的结构如下所示 Input 输入数据的第一行是一个整数N 表示测试实例的个数 然后是N 行数据 每行包含两个整数a和b 0
  • Java UnknownHostException –服务器的无效主机名–如何解决?

    An UnknownHostException的快速指南 如果在为远程方法调用创建到远程主机的连接时发生java net UnknownHostException 则会抛出该快速指南 UnknownHostException的预防方法 1
  • cookie 和session 的区别详解

    原文地址 http www cnblogs com shiyangxt archive 2008 10 07 1305506 html 这些都是基础知识 不过有必要做深入了解 先简单介绍一下 二者的定义 当你在浏览网站的时候 WEB 服务器
  • 用Python进行面向对象编程:提高代码可重用性和扩展性

    数据来源 01 初识对象 生活中数据的组织 程序中数据的组织 使用对象组织数据 演示 演示使用对象组织数据 在程序中设计表格 我们称之为 设计类 class class Student name None 记录学生姓名 gender Non
  • [4G+5G专题-132]: 传输层 - 以太网电缆的类型(Cat5,Cat5e,Cat6,Cat6a)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121552941 目录 1 主要的技术
  • BUUCTF Misc 二维码 & 你jing然赶我走 & 大白 & N种方法解决 & 乌镇峰会种图1 & 基础po解

    目录 二维码 你竟然赶我走 大白 N种方法解决 乌镇峰会种图 基础po解 二维码 下载文件 一个二维码 使用 QR research扫描 扫描完提示flag就在这 把二维码拖入010 editor打开 有个txt文档 使用kali中的bin
  • win7安装vmtools

    打开该虚拟机的虚拟机设置 选择软盘 设备状态设置为启动时连接 连接选择使用物理驱动器并使用自动检测 如图所示 然后保存并退出设置 在虚拟机选项中就可以选择安装vmtools了 或者在该虚拟机中选择软盘进行安装
  • 一周简报(维护项目空间)

    这一周 是9月的第三周了 我依然战斗在XX海油上 本周我的主要任务是处理项目空间中的一个需求变更 顾客就是上帝 对于他们合理的需求 我们努力去做到尽善尽美 当然也要保证在客户要求的时间内去完成 在这个高节奏 快步伐的时代 效率和质量是大家追
  • Unity 游戏框架搭建 2019 (四十六) 简易消息机制

    在上一篇 我们接触了单例 使用单例解决了我们脚本之间访问的问题 脚本之间访问其实有更好的方式 我们先分下脚本访问脚本的几种形式 第一种 A GameObject 是 B GameObject 的 Parent 或者是中间隔着几个层级的 Pa
  • 蓝桥杯-高精度阶乘(Java代码)

    问题描述 输入一个正整数n 输出n 的值 其中n 123 n 算法描述 n 可能很大 而计算机能表示的整数范围有限 需要使用高精度计算的方法 使用一个数组A来表示一个大整数a A 0 表示a的个位 A 1 表示a的十位 依次类推 将a乘以一
  • 昆仑天工AIGC——基于Stable Diffusion的多语言AI作画大模型测评

    文章目录 1 AIGC 2 技术背景 2 1 Stable Diffusion 2 1 1 图像感知压缩 Perceptual Image Compression 2 1 2 隐扩散模型 Latent Diffusion Models 2
  • ModelSerializer序列化与反序列化(重点)

    视图类 class UserV3APIView APIView 单查群查 def get self request args kwargs pk kwargs get pk if pk user obj models User object
  • 2020年第十一届蓝桥杯第二场省赛B组C++题解

    2020年第十一届蓝桥杯第二场省赛B组C 题解 题单 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 题单 第一题 小蓝要为一条街的住户制作门牌号 这条街一共有 2020 位住户 门牌号从 1 到 2020 编号 小蓝制作门