第十三届蓝桥杯大赛软件赛省赛CC++大学B组

news2024/10/7 18:26:02

第十三届蓝桥杯大赛软件赛省赛CC++ 大学 B 组

文章目录

  • 第十三届蓝桥杯大赛软件赛省赛CC++ 大学 B 组
    • 1、九进制转十进制
    • 2、顺子日期
    • 3、刷题统计
    • 4、修建灌木
    • 5、x进制减法
    • 6、统计子矩阵
    • 7、积木画
    • 8、扫雷
    • 9、李白打酒加强版
    • 10、砍竹子

1、九进制转十进制

在这里插入图片描述

计算器计算即可。2999+29+2。

2、顺子日期

在这里插入图片描述
简单的枚举一下2022年的日期即可,注意遇到20220123,判断为一个即可。

#include<iostream>

#define ll long long
using namespace std;
int ans=0;
int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	for(int i=1;i<=12;i++){
		for(int j=1;j<=d[i];j++){
			int date[]={2,i/10,i%10,j/10,j%10};
			for(int k=0;k<3;k++){
				if(date[k]+1==date[k+1]&&date[k+1]+1==date[k+2]){
					ans++;
					break;
				}
			}
		}
	}
	cout<<ans;
	return 0;
}

3、刷题统计

在这里插入图片描述
分析:

这一题我本来用的是cmath里的ceil函数,但是提交之后我发现只能过掉70%,并没有全部通过。
随后我手写了ceil函数的功能,然后就可以100%通过了。
后来我就发现ceil函数原型是float ceilf (float x); 题意是1e18,肯定就会出现精度问题了,真的要记住这问题了,遇到特大数尽量手心函数,不要用库函数,可能就会出现问题。

#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
ll a,b,n;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>a>>b>>n;
	ll x=(5*a+2*b);
	ll y=(n/x);// 坐满了几周,7*y 
	ll z=(n%x);// 还剩的题数 
	if(z<=5*a){
		if(z%a==0){
			z=z/a;
		}else{
			z=z/a+1;
		}
		cout<<7*y+z;
	}else{
		if((z-5*a)%b==0){
			z=(z-5*a)/b;
		}else{
			z=(z-5*a)/b+1;
		}
		cout<<7*y+5+z;
	}
	return 0;
}

4、修建灌木

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这一题直接暴力模拟过程即可,对于案例n=3,我们模拟过程会发现一个规律,那就是在1~n中最高的树是对称的而且最高的树的值都是这两个对称位置步长的2倍。

#include<iostream>
#define ll long long
using namespace std;
int n;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	/*
		n=3
		未剪   修剪后 	位置
		111 -> 011      1
		122 -> 101 		2
			
		212 -> 210		3
		321 -> 301		2
		412 -> 012		1
		123 -> 103 		2
		214 -> 210		3		
		可以看到出现了循环情况,也就说从左向右和从右向左,的最大值是就是步长的2倍 
	*/
	for(int i=1;i<=n;i++){
		cout<<max(i-1,n-i)*2<<"\n";
	}
	return 0;
}

5、x进制减法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没想到啊,感觉脑袋被踢了。

代码示例:

#include<iostream>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
const ll mod = 1000000007,N = 1e5+10;
ll n,ma,mb,a[N],b[N],p[N];
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	// 从高位县向低位输入,避免造成位数不相同 
	cin>>ma;
	for(ll i=ma;i>=1;i--)cin>>a[i];
	cin>>mb;
	for(ll i=mb;i>=1;i--)cin>>b[i];
	/*
		x进制类比一下 十进制 
		比如 123 就是 1*10*10+2*10+3
		那么x进制的:
		每一位的进制:11 5 2
		每一位的数字:10 4 1
		那么这个x进制对应的十进制不就是:10*5*2+4*2+1 
	*/
	// A >= B 	
	// 进制: 11 5 2  
	// 10 4 0  10*5*2+4*2+0=108
	// 1  2 0  1*5*2+2*2+0=14   108-14=94
	// 所以说最小的数位上的进制应该就是a[i]和b[i]这个数位的值+1 
	// 也就是说正好要进位的时候能得到最小值
	// 我们就使用p[i]来储存每个位上应该是什么进制 
	for(ll i=1;i<=ma;i++){
		p[i]=max((ll)2,max(a[i],b[i])+1);
	}
	p[0]=1;
	ll ans=0;
	for(int i=ma;i>=1;i--){ 
		ans=(ans+a[i]-b[i])*p[i-1]%mod;
	}
	cout<<ans;
	return 0;
}

6、统计子矩阵

在这里插入图片描述
在这里插入图片描述

分析:

我直接想到的就是二维前缀和解决这个问题,去拿区间的值和k判断即可。
写的时候运行的结果一直不对,后来才发现是公式记错了,所以说记公式很重要。
区间的形式求值得公式是:res=prefix[x2][y2]-prefix[x2][y1-1]-prefix[x1-1][y2]+prefix[x1-1][y1-1] 。
但是直接暴力解决的话,只能过70%,其它的超时。优化的方法自行搜索。

#include<iostream>
#include<cstring>
#define ll long long
#define pii pair<ll,ll>
using namespace std;
const int N = 5e2+10;
ll n,m,k,mp[N][N],prefix[N][N],ans=0;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m>>k;
	memset(prefix,0,sizeof(prefix));
	memset(mp,0,sizeof(mp));
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){	 
			cin>>mp[i][j];
			prefix[i][j]=prefix[i-1][j]+prefix[i][j-1]+mp[i][j]-prefix[i-1][j-1];
		}
	
	for(int x1=1;x1<=n;x1++){
		for(int y1=1;y1<=m;y1++){
			for(int x2=x1;x2<=n;x2++){
				for(int y2=y1;y2<=m;y2++){
					// s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]
					ll res=prefix[x2][y2]-prefix[x2][y1-1]-prefix[x1-1][y2]+prefix[x1-1][y1-1];
					if(res<=k)ans++;
				}
			} 
		}
	}		
	cout<<ans;
	return 0;
}

7、积木画

8、扫雷

在这里插入图片描述
在这里插入图片描述
简单的枚举判断一下就行了。

#include<iostream>
#include<cstring>
#define ll long long
using namespace std;
const int N = 105;
int n,m; 
int mp[N][N],ans[N][N];
int dx[]={0,0,1,-1,1,-1,1,-1};
int dy[]={1,-1,0,0,1,-1,-1,1};
bool isnmp(int x,int y){
	return x<0||x>=n||y<0||y>=m;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			cin>>mp[i][j];
	memset(ans,'0',sizeof(ans));
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			if(mp[i][j]==1){
				ans[i][j]=9;	
			}else{
				int rs=0;
				for(int k=0;k<8;k++){
					int nx=i+dx[k],ny=j+dy[k];
					if(isnmp(nx,ny))continue;
					if(mp[nx][ny]==1){
						rs++;
					}
				}
				ans[i][j]=rs;
			}
		}
	}	
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++)
			cout<<ans[i][j]<<" ";
		cout<<"\n";
	}
	return 0;
}

9、李白打酒加强版

10、砍竹子

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

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

相关文章

RD55UP06-V 三菱iQ-R系列C语言功能模块

RD55UP06-V 三菱iQ-R系列C语言功能模块 RD55UP06-V用户手册&#xff0c;RD55UP06-V功能&#xff0c;RD55UP06-V系统配置 RD55UP06-V参数规格&#xff1a;10BASE-T/100BASE-TX/1000BASE-T 1通道&#xff1b;字节存储次序格式小端模式; 可使用SD存储卡插槽&#xff1b;工作RAM 1…

路由、插槽

路由 前端路由&#xff1a;Hash地址(url中#后面的部分)与组件之间的对应关系 页面效果&#xff1a;在浏览器中访问不同的Hash地址时&#xff0c;会显示不同的组件 SPA项目(单页面应用程序&#xff0c;就是Vue项目&#xff0c;最后所有模板都展示在一个html上) vue路由(vue-r…

VUE3——生命周期

Vue3.0中可以继续使用Vue2.x中的生命周期钩子&#xff0c;但有有两个被更名&#xff1a; beforeDestroy改名为 beforeUnmountdestroyed改名为 unmounted Vue3.0也提供了 Composition API 形式的生命周期钩子&#xff0c;与Vue2.x中钩子对应关系如下&#xff1a; beforeCreate&g…

3D Gaussian Splatting Linux端部署指南(含Linux可视化)

3D Gaussian Splatting Linux端部署指南 目录 项目地址 部署记录 11. Linux端在线远程可视化训练进程 准备自己的数据 SIBR_remoteGaussian在线远程可视化 补充&#xff1a;sibr_3Dgaussian离线可视化训练好的模型 朋友浩哥说环境是最难配的&#xff0c;配好环境&#x…

Tinymce富文本编辑器二次开发电子病历时解决的bug

前言 本文是在Tinymce富文本编辑器添加自定义toolbar&#xff0c;二级菜单&#xff0c;自定义表单&#xff0c;签名的基础之上进行一些bug记录&#xff0c;功能添加&#xff0c;以及模版的应用和打印 项目描述 建立电子病历模版—录入&#xff08;电子病历模版和电子病历打印…

运筹学基础(三):求解整数规划的切平面法(cutting plane method)

文章目录 算法思想一个例子参考文档 算法思想 先将整数规划问题松弛为线性规划问题&#xff0c;然后割掉线性规划问题可行域的一部分&#xff08;只包含非整数解&#xff09;&#xff0c;使得线性规划问题的最优解在原整数规划问题的可行域某顶点上取得。 因此&#xff0c;割平…

Spring之BeanFactoryPostProcessor详解

目录 功能与作用 使用案例 spring提供的常见BeanFactoryPostProcessor 1.EventListenerMethodProcessor 2.BeanDefinitionRegistryPostProcessor 功能与作用 使用案例 spring提供的唯一BeanDefinitionRegistryPostProcessor 总结 功能与作用 参考BeanFactoryPostProce…

如何插入LinK3D、CSF、BALM来直接插入各个SLAM框架中

0. 简介 LinK3D、CSF、BALM这几个都是非常方便去插入到激光SLAM框架的。这里我们会分别从多个角度来介绍如何将每个框架插入到SLAM框架中 1. LinK3D:三维LiDAR点云的线性关键点表示 LinK3D的核心思想和基于我们的LinK3D的两个LiDAR扫描的匹配结果。绿色线是有效匹配。当前关…

C++ 中的 vector 的模拟实现【代码纯享】

文章目录 C 中的 vector 模拟实现1. vector 的基本概念2. vector 的基本操作3. vector 的模拟实现4.代码纯享5. 总结 C 中的 vector 模拟实现 在 C 中&#xff0c;vector 是一个非常重要的容器&#xff0c;它提供了动态数组的功能。在本篇博客中&#xff0c;我们将尝试模拟实现…

搭建电商网站外贸网站用API接口可以实现哪些功能(天猫API接口|京东API接口)

在电商领域&#xff0c;API接口可以实现多种功能&#xff0c;起到连接内外部系统及优化电商业务流程等多种作用&#xff0c;从而来提高电商企业的运营效率。 具体来看&#xff0c;API接口接入可以用来&#xff1a; 商品管理&#xff1a; API接口能够用来获取商品详情等&#…

OR- M406A固态继电器SSR光耦,对标替代TLP170A/ASSR-1218等

低工作电流 低导通电阻 高隔离电压 400V , 600V 输出耐受电压 工业温度范围&#xff1a;-40 to 85℃ 特征 高输入输出隔离电压 &#xff08; Viso 3&#xff0c;750Vrms &#xff09; 采用 400V 和 600V 负载电压系列 常开信号极点信号投射继电器 低工作电流 低…

Redis安装-Docker

安装redis的docker容器 1、创建redis挂载目录 mkdir -p /liuchaoxu/redis/{data,conf}2、复制配置文件 在 /liuchaoxu/redis/conf 目录中创建文件 redis.conf&#xff0c;文件从 redis-6.2.7.tar.gz 中解压获取 修改默认配置(从上至下依次)&#xff1a; #bind 127.0.0.1 …

小明的背包-dp_python

用户登录 动态规划的思想是自底向上&#xff0c;先求局部最优解然后求全局最优解。 dp[i][j]代表的是当前状态物品的数量以及背包的容量。 N, V map(int,input().split()) dp [[0 for _ in range(V1)] for _ in range(N1)]for i in range(1,N1):v, w map(int,input().split(…

CSS样式-字体类型,文本对齐,外观修饰,文本缩进,文本行间距,外部引用css样式

字体类型和字体属性调整 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Css字体类型大小</title&…

浅述安防视频监控平台EasyCVR视频汇聚管理系统运维管理能力

智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…

如何保证Redis的缓存和数据库中的数据的一致性?

Redis的缓存如何和数据库中的数据保持一致性&#xff1f; 我们都知道&#xff0c;Redis是一个基于内存的键值存储系统&#xff0c;数据完全存放在内存中&#xff0c;这使得它的读写速度远超传统的硬盘存储数据库。对于高访问频率、低修改率的数据&#xff0c;通过将它们缓存在…

4.6 offset指令,jmp short指令,far,dword ptr各种跳转指令

4.6 offset指令&#xff0c;jmp short指令&#xff0c;far&#xff0c;dword ptr各种跳转指令 可以修改IP&#xff0c;或同时修改CS和IP的指令统称为转移指令。概括的讲&#xff0c;转移指令就是可以控制CPU执行内存中某处代码的指令 1. 转移指令 1.1 8086CPU的转移行为有以…

城市治理/县域治理方案:构建基于AI视频能力的“一张网”,助力新型城市发展

TSINGSEE青犀AI算法中台是一款平台型产品&#xff0c;专注于提供各行业中小场景部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点&#xff0c;可提供丰富的视图接入能力和智能分析能力。 平台采用了多项IT高新技术&#xff0c;包括视频编解码技术、嵌入式…

宁盾身份域管与Coremail邮件系统完成兼容互认证,持续深化信创布局

在信创国产化改造的背景下&#xff0c;企业邮箱的替换是许多党政、央国企、金融、制造企业面临的重要任务。为了满足企业对国产邮箱、OA等其他应用、终端实现统一身份认证&#xff0c;宁盾国产化身份域管与 Coremail XT 安全增强电子邮件系统 V5.0、V6.0 完成了产品兼容互认证&…

从redux的基本概念渐进式理解redux/toolkit的用法

概念 Redux toolkit是帮助提高redux开发效率的一个库 React-redux 是将React和Redux toolkit绑定在一起的一个库 action 是一个对象,里面有一个type属性 action creator是一个函数,这个函数可以返回上面的action对象。 reducer 是一个函数,接受两个参数(initilastate, acti…