2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)

news2024/11/26 16:46:12

目录

  • 第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾)
    • 试题 A: 九进制转十进制
    • 试题 B: 顺子日期
    • 试题 C: 刷题统计
    • 试题 D: 修剪灌木
    • 试题 E: X 进制减法
    • 试题 F: 统计子矩阵
    • 试题 G: 积木画
    • 试题 H: 扫雷
    • 试题 I: 李白打酒加强版
    • 试题 J: 砍竹子

第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾)

试题 A: 九进制转十进制

在这里插入图片描述
代码:

1478

试题 B: 顺子日期

在这里插入图片描述
个人理解:

由于题可知在20220101 ~ 20221231中,存在的连续的3个数字有四种情况分别为012,210,123,321。
根据题面20220123 就是一个顺子日期,因为它出现了一个顺子:123;而 20221023 则不是一个顺子日期,它一个顺子也没有。
我们可以知道210,012不满足情况,类比210,321也是从大到小,因此得出结论顺子只有123这一种情况。

代码:

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int a[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
int main() {
	int s = 20220101;
	int e = 20221231;
	int cnt = 0;
	for(int i = s; i <= e; i++) {
		int m = (i % 10000) / 100;
		int d = (i % 100);
		if(m > 12) continue;
		if(d == 0 || d > a[m])continue;
		string tmp = "";
		int t = i;
		while(t) {
			int aa = t % 10;
			tmp = tmp + (char)('0' + aa);
			t = t / 10;
		}
		reverse(tmp.begin(),tmp.end());
		int a1 = tmp.find("123");
		//int a2 = tmp.find("321");
		//int a3 = tmp.find("012");
		//int a4 = tmp.find("210");
		if(a1 != -1) {
			cout<<i<<endl;
			++cnt;	
		}
	}
	cout<<cnt<<endl;	
}

运行结果:

20220123
20221123
20221230
20221231
4

试题 C: 刷题统计

在这里插入图片描述
个人理解:

首先计算每周一共需要刷多少题 sum = a * 5 + b * 2;
随后计算有多少个完整的7天ans = n / sum
得出完整的天数ans = ans * 7;
在此之后剩下的题量肯定能在7天内完成,我们进行便利即可
注意数据规模需要开long long

代码:

#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
int main() {
	ll a,b,n,ans = 0,km = 0;
	cin>>a>>b>>n;
	ll sum = a * 5 + b * 2;
	ans = (n / sum) * 7;
	km = n % sum;
	int cnt = 0;
	while(km > 0) {
		++cnt;
		if(cnt <= 5) km = km - a;
		else km = km - b;
	}
	ans = ans + cnt;
	cout<<ans<<endl;
	return 0;
}

试题 D: 修剪灌木

在这里插入图片描述
个人理解:

分成一半一半,前一半与后一半是对称的

代码:

#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
const int maxn = 1e4 + 10;
int ans[maxn];
void init(int n) {
	int m = (n + 1) / 2;
	for(int i = 1; i <= m; i++) {
		int tmp = max(i,2 * (n - i));
		ans[i] = tmp;
		ans[n - i + 1] = tmp;
	}
}
int main() {
	int n;
	cin>>n;
	init(n);
	for(int i = 1; i <= n; i++) cout<<ans[i]<<endl;
	return 0;
}

试题 E: X 进制减法

在这里插入图片描述
代码:

//呜呜呜呜,不会--

试题 F: 统计子矩阵

在这里插入图片描述
个人理解:

该题需要动态规划,但是我没有规划出来,只能用二维前缀和骗分了。

代码:

#include <iostream>
#include <algorithm>
#include <set>
#include <map>
#include <string>
#include <cmath> 
using namespace std;
#define ll long long
#define mod 1000000007
const int maxn = 5e2 + 10;
int vis[maxn][maxn],n,m,k;
int cal(int x,int y,int i,int j) {return vis[i][j] - vis[i][y-1] - vis[x - 1][j] + vis[x-1][y-1];}
int init() {
	int ans;
	for(int i = 1; i <= n; i++) {
		for(int j = 1; j <= m; j++) {
			for(int l = i; l <= n; l++)
				for(int s= j; s <= m; s++) {
					int sum = cal(i,j,l,s);
					if(sum <= k) ans++;
				}
		}
	}
	return ans;
}
int main() {
	cin>>n>>m>>k;
	for(int i = 1; i <=n; i++) {
		for(int j = 1; j <= m; j++) {
			int x;
			cin>>x;
			vis[i][j] = vis[i-1][j] + vis[i][j-1] - vis[i-1][j-1] + x;
		}
	}
	int num = init();
	cout<<num<<endl;
	return 0;
}

试题 G: 积木画

在这里插入图片描述
个人理解:

该题为找规律。
递归方程:dp[i] = (2 * dp[i - 1] + dp[i - 3])

代码:

#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
#define mod 1000000007
const int maxn = 1e7 + 10;
ll n;
int main() {
	cin>>n;
	if(n == 1) {
		cout<<"1"<<endl;
	} else if(n == 2) {
		cout<<"2"<<endl;
	} else if(n == 3){
		cout<<"5"<<endl;
	} else if(n == 4) {
		cout<<"11"<<endl;
	} else {
		ll a = 1,b = 2,c = 5,ans;
		for(int i = 4; i <= n; ++i) {
			ans = (c * 2 + a) % mod;
			a = b % mod;
			b = c % mod;
			c = ans % mod;
		}	
		cout<<(ans % mod)<<endl;
	}
   	return 0; 
}

试题 H: 扫雷

在这里插入图片描述
个人理解:

该题我进行了暴力模拟,希望能得一半分

代码:

#include <iostream>
#include <algorithm>
#include <set>
#include <map>
#include <string>
#include <cmath> 
using namespace std;
#define ll long long
#define mod 1000000007
double len(double x,double y,double i,double j) {return abs(x-i)*abs(x-i)+abs(y-j)*abs(y-j);}
const int maxn = 5e4 + 10;
ll cnt,n,m;
int vis[maxn]; 
struct BOBO{
	double x,y,z;
}M[maxn];
void init(double x,double y,double r) {
	for(int i = 0; i < n; i++) {
		if(vis[i] || len(x,y,M[i].x,M[i].y) > r * r) continue; 
		cnt++;
		vis[i] = 1;
		init(M[i].x,M[i].y,M[i].z);
	} 
}
int main() {
	cin>>n>>m;
	for(int i = 0; i < n; i++) cin>>M[i].x>>M[i].y>>M[i].z; 
	while(m--){
		double x,y,z;
		cin>>x>>y>>z;
		init(x,y,z);
	}
	cout<<cnt<<endl;
	return 0;
}

试题 I: 李白打酒加强版

在这里插入图片描述
个人理解:

李白打酒加强版,暴力骗分
2014年李白打酒,2022年李白打酒加强版。

代码:

#include <iostream>
#include <algorithm>
#include <set>
#include <map>
#include <string>
using namespace std;
#define ll long long
#define mod 1000000007
const int maxn = 1e7 + 10;
ll n,m,ans;
void init(){
	int t = 1 << (n+m);
	ll cd,cs,tmp;
	for(ll i = 0; i < t; i++) {
		tmp = 2;
		cd = cs = 0;
		int mark = 1;
		for(ll j = 0; j < n + m; j++) {
			if(!mark) break;
			if(i >> j & 1){
				tmp = tmp * 2;
				cd++;
				if(j == n+m-1) mark = 0;
			}
			else {
				if(tmp <= 0) mark = 0;
				tmp--;
				cs++;
			}
		}
		if(mark && cs == m && cd == n && !tmp) ans = (ans + 1) % mod;;
	}
}
int main() {
	cin>>n>>m; 
	init();
	cout<<ans<<endl;
	return 0;
}

试题 J: 砍竹子

在这里插入图片描述
代码:

//不会------

AcWing上有第十三届蓝桥杯大赛软件赛省赛C/C++大学B组的原题,大家可以自测一下
题目链接 AcWing
考后个人理解,仅供参考,静等官方题解
期望能国赛
完美撒花

2022年5月7日
期望达成,国赛加油💯💯💯
在这里插入图片描述

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

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

相关文章

【JavaStript】

目录 &#x1f437;1. JavaScript 的书写形式 &#x1f6e9;1.1 行内式 &#x1f49b; 1.2 内嵌式 &#x1f357;1.3 外部式 &#x1f37f;2. JavaScricpt 的一些常用语句 &#x1f6f4;2.1 输入&#xff1a;prompt &#x1f47d;2.2 输出&#xff1a;alert &#x1f…

Linux线程间的同步和互斥 进程间传统通信方式 5.16

Linux线程间的同步和互斥 同步&#xff1a;有顺序的考虑 按照约定的顺序相互配合完成一件事情&#xff08;红绿灯&#xff09; {释放 产生 资源1&#xff08;V操作&#xff09;&#xff1b;&#xff1b;申请 资源-1&#xff08;p操作&#xff09;} 信号量代表某一类资源&am…

RocketMQ整理

RocketMQ在阿里云上的商业版本,集成了阿里内部一些更深层次的功能及运维定制。开源版本,功能上略有缺失,但大体上是一样的。 使用Java开发,便于深度定制。最早叫MetaQ。消息吞吐量虽然依然不如Kafka,但是却比RabbitMQ高很多。在阿里内部,RocketMQ集群每天处理的请求数超过…

监控需求来源及主流方案对比

我们从开始了解监控系统来说&#xff0c;首先我们要先了解监控的需求来源&#xff0c;即监控系统都可以用于做什么? 监控需求来源 其实最初的需求很简单&#xff0c;即"系统出问题了我们要能及时感知"。后面随着技术的不断发展&#xff0c;我们对监控系统提出了更…

Linux的超级用户及权限

目录 一:Linux下的两个用户 二&#xff1a;权限 1&#xff1a;目录文件 文件创建的默认权限 2&#xff1a;普通文件 一:Linux下的两个用户 在使用Linux的时候会有两个身份,第一个是普通用户,普通用户在很多方面是受阻的,原因就是权限不够,在这种情况下就有一个超级用户,也…

iOS图片系列一 图片的基本属性

图片在项目的开发中使用频率很高&#xff0c;但是绝大部分都是作为普通的展示或者偶尔需要裁剪&#xff0c;并不需要对图片做什么特别的处理&#xff0c;最近做了一个项目对于图片的需求功能比较多&#xff0c;踩了很多坑的同时也对图片的使用有了更深的理解&#xff0c;整理下…

C++面经:初始化全局变量和未初始化全局变量有什么区别

全局变量初始化而且初始值不为0&#xff0c;那么这样的全局变量是放在内存的.data段的&#xff0c;如果全局变量初始值为0或者未初始化&#xff0c;那么这样的全局变量是放在.bss段的。 考点&#xff1a; 考察C/C语言内存模型&#xff0c;.data&#xff0c;.bss段存放的内容。 …

Windows shell环境: 从git bash切换到msys2

文章目录 1. 目的2. msys2 环境 (Environment)3. 升级 MSYS2: 使用 pacman 滚动式升级整个系统4. 在 Windows Terminal 中增加显示 MSYS25. 使用 zsh6. VSCode 中的配置增加 MSYS2 终端配置 git 路径 7. 安装 C/C 依赖库安装 ag查询 bison 和 flex 的安装目录 8. References 1.…

ES6模块化规范

在没有ES6模块化规范前&#xff0c;有像AMD、CMD这样的浏览器模块化规范&#xff0c;还有像CommonJS这样的服务端模块化规范。 2015年&#xff0c;JS终于推出了官方的模块化规范&#xff0c;为了统一各种规范&#xff0c;我们简称ES6 模块化。 ES6目前作为JS的内置模块化系统&a…

Spring的创建和使用,存储和读取Bean总结

目录 Spring项目创建和使用流程 1.创建一个 Spring 项目 2.存储 Bean 3.读取 Bean ApplicationContext和BeanFactory的区别 通过注解存储 Bean对象 五大类注解的关系 Java程序标准分层 方法注解Bean 注入Bean对象的三种方式 1.属性注入 2.Setter注入 3.构造方法注入…

【Java数据结构】Map和Set

Map和Set 搜索树概念操作 - 查找操作 - 插入操作 - 删除cur没有左树&#xff08;cur.left null&#xff09;cur没有右树&#xff08;cur.right null&#xff09;cur既有左树也有右树&#xff08;最困难的情况&#xff09;替罪羊删除法 操作代码性能分析和 java 类集的关系 搜…

程序员困局:去大城市进大厂却买不了房,回老家又没有高薪工作…

对于在外打拼的程序员来说&#xff0c;难的是进大厂&#xff0c;而不是买不起房。 进大厂的程序员&#xff0c;能不能买得起房&#xff1f; 进大厂的程序员的薪资&#xff0c;还是相当可观的。以阿里P6为例&#xff0c;年薪50万&#xff0c;到手40万左右&#xff0c;刨去10万…

【C++学习】C++11——新特性 | 右值引用 | 完美转发

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; C11——新特性 | 右值引用 | 完美转发 &#x1f440;列表初始化&#x1f9b4; std::initializer_list…

收藏!网络行业主流的六大技术认证全科普

大家好&#xff0c;我是老杨。你的年终总结做完了没&#xff1f;还没做完&#xff0c;点击“年终总结”&#xff0c;拿个模板&#xff0c;快速完成。 很多人在年末都会有列一个新年愿望清单&#xff0c;写写来年想要完成的事情。 不少网工在这两年的就业环境之下&#xff0c;…

Nginx-部署2个vue项目(多个项目)-二级域名设置代理

前言 最近在实际开发过程中&#xff0c;需要在服务器部署2个项目。需要nginx二级域名。 开始时候在网上查了一圈&#xff0c;各有说法&#xff0c;不是很全&#xff0c;很头大。这里把自己成功的二级域名代理记录一下。 网上有很多文章说要该router.js文件&#xff0c;要该vu…

自动备份交换机的配置到远程服务器

环境 交换机配置修改后及时备份相关配置&#xff0c;每次配置变化后需要在1分钟后自动进行保存&#xff0c;并且将配置上传至FTP服务器&#xff1b;每隔30分钟&#xff0c;交换机自动把配置上传到FTP服务器 配置命令&#xff1a; [huawei]set save-configuration delay 1 //…

单片机外围电路:电阻之上下拉电阻

1.基础概念 上拉就是将不确定的信号通过一个电阻钳位在高电平&#xff0c;电阻同时起限流作用。下拉同理&#xff0c;也是将不确定的信号通过一个电阻钳位在低电平。 2.基础应用 上下拉电阻在数字电路中使用&#xff0c;为了好理解一点&#xff0c;可把上下拉电阻大致分为两种…

货币简史:从物物交换到数字货币

货币简史 1. 物物交换阶段2. 一般等价物阶段3. 信用货币阶段4. 电子货币阶段5. 数字货币阶段 金钱是什么时候产生的呢&#xff0c;这取决于你如何定义金钱。 费利克斯马丁&#xff08;FelixMartin&#xff09;名为《金钱:未授权的传记》(Money:An Unauthorized Biography)书中…

19c rac环境修改pubic, vip,scan ip步骤

19c rac环境第一次修改public、vip和scan ip&#xff0c;和11g还是稍有不同。首先说明下环境 具体步骤如下 1、修改public地址&#xff0c;关闭实例后使用root用户操作 [rootdb1 ~]# ./oifcfg getif bond0 172.20.30.0 global public bond2 100.100.100.0 global clust…

【JVM】JVM堆内存(heap)详解

文章目录 前言一、堆内存划分二、为什么移除永久代&#xff1f;三、分代概念四、为什么分代&#xff1f;五、为什么survivor分为两块相等大小的幸存空间&#xff1f;六、JVM堆内存常用参数七、垃圾回收算法&#xff08;GC&#xff0c;Garbage Collection&#xff09;八、垃圾收…