第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 题解

VP比赛链接 : 

数据加载中... - 蓝桥云课

1 . 九进制 转 十进制

直接模拟就好了

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int x = 2+2*9+2*81*9;cout << x << endl ;return 0;
}

2 . 顺子日期

枚举出每个情况即可 : 总共14个 ;

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码// 0120 0121 .. 29 : 10// 1月 : 10// 1012// 1123//1230// 1231cout << 14 << endl ;return 0;
}

3 . 刷题统计

模拟即可 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define int long long
typedef long long LL;using namespace std;inline void solve(){LL a , b , n ; cin >> a >> b >> n ;LL x = 5*a + 2*b ;LL w = n / x ;LL ans = w * 7 ;n -= w * x ;LL f = n % x ;for(int i=1;i<=5&&n>0;i++){n-=a ; ans ++ ;} for(int i=1;i<=2&&n>0;i++){n -= b ;ans ++ ;}cout << ans << endl ;
}signed main()
{IOSint _ = 1;while(_ --) solve();return 0;
}

4 . 修剪灌木

对于每一颗灌木最大是2*(距离两边较大的距离 ) ;

然后遍历即可 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define int long long
typedef long long LL;
const int mod = 1e9 + 7;
const int N = 2e5 + 10;using namespace std;inline void solve() {int n ; cin >> n ;for(int i=1;i<=n;i++){int ans = max(2*(i-1),2*(n-i));cout << ans << endl ;}
}signed main()
{IOSint _ = 1;while (_--) solve();return 0;
}

5 . X进制减法

根据题目意思去模拟 , 对于每一位先计算数位=max(2,max(a[i],b[i])+1);

然后计算每一位的权重 : 由前面的地推过来即可 ;

然后分别算出A和B的值,相减即可 ;

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
typedef long long LL;
const int mod = 1e9+7;
const int N = 1e5+10;
using namespace std;// 321
// 第一位 1
// 3 * 20 + 2 * 2 + 1 * 1 = 64int a[N] , b[N] ,w[N], mul[N] ;inline void solve(){int n ; cin >> n ;int x, y ; cin >> x ;for(int i=x;i>=1;i--) cin >> a[i] ;cin >> y ;for(int i=y;i>=1;i--) cin >> b[i] ;//1是低位 int ma = max(x , y) ;for(int i=1;i<=ma;i++) mul[i] = max(2,max(a[i],b[i])+1) ;//每一位的进制 w[1] = 1 ;for(int i=2;i<=ma;i++){w[i] = 1LL * w[i-1] * mul[i-1] % mod ;}LL A = 0 , B = 0 ;for(int i=1;i<=x;i++) A = (A + 1LL * a[i] * w[i]  ) % mod ;for(int i=1;i<=y;i++) B = (B + 1LL * b[i] * w[i]  ) % mod ;cout << (A - B + mod) % mod  << endl ;
}signed main()
{IOSint _ = 1;while(_ --) solve();return 0;
}

6 . 统计子矩阵

前缀和 + 滑动窗口

先计算出每一列的前缀和 , 然后用滑动窗口来夹每一列,对于每个合适的窗口,ans加上窗口长度 ;

详细请看代码 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
typedef long long LL;
const int mod = 1e9+7;
const int N = 510;
using namespace std;LL a[N][N] ;inline void solve(){LL n,m,k;cin>>n>>m>>k;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin >> a[i][j] ;a[i][j]+=a[i-1][j];// 统计每一列的前缀和 }LL ans = 0 ;for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){// 夹中间LL sum = 0 ;int l = 1 , r = 1 ;while(r<=m){sum += a[j][r]-a[i-1][r] ;while(sum>k){sum -= a[j][l] - a[i-1][l] ;l ++ ;}ans += r - l + 1 ;r++ ;}}}cout << ans << endl ;
}signed main()
{IOSint _ = 1;while(_ --) solve();return 0;
}

7 . 积木画

状态压缩dp,不会

8 . 扫雷

实属简单,模拟即可 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
typedef long long LL;
const int mod = 1e9+7;
const int N = 110;
using namespace std;int a[N][N] ,b[N][N] ;int dx[8] = {0,0,1,-1,1,1,-1,-1};
int dy[8] = {1,-1,0,0,1,-1,1,-1};inline void solve(){int n , m ; cin >> n >> m ;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin >> a[i][j] ;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]==1){b[i][j] = 9 ;continue ;}int cnt = 0 ;for(int p=0;p<8;p++){int x = i + dx[p] , y = j + dy[p] ;if(x>=1&&x<=n&&y>=1&&y<=m&&a[x][y]==1) cnt ++ ;}b[i][j] = cnt ;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout << b[i][j] << " " ;}cout << endl ;}}signed main()
{IOSint _ = 1;while(_ --) solve();return 0;
}

后面两题不会,补;

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

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

相关文章

第8章 数据集成和互操作

思维导图 8.1 引言 数据集成和互操作(DII)描述了数据在不同数据存储、应用程序和组织这三者内部和之间进行移动和整合的相关过程。数据集成是将数据整合成物理的或虚拟的一致格式。数据互操作是多个系统之间进行通信的能力。数据集成和互操作的解决方案提供了大多数组织所依赖的…

sh与bash:Shell脚本中的微妙差异

在Unix和Linux的世界中&#xff0c;Shell是用户与操作系统交互的主要界面。Shell提供了命令行界面&#xff0c;使得用户能够执行各种命令和操作。在众多的Shell中&#xff0c;sh和bash是最常见且使用最广泛的两种。尽管它们在很多方面相似&#xff0c;但在功能、特性和语法上&a…

配置交换机 SSH 管理和端口安全——实验1:配置交换机基本安全和 SSH管理

实验目的 通过本实验可以掌握&#xff1a; 交换机基本安全配置。SSH 的工作原理和 SSH服务端和客户端的配置。 实验拓扑 交换机基本安全和 SSH管理实验拓扑如图所示。 交换机基本安全和 SSH管理实验拓扑 实验步骤 &#xff08;1&#xff09;配置交换机S1 Switch>enab…

【r-tree算法】一篇文章讲透~

目录 一、引言 二、R-tree算法的基本原理 1 数据结构 2 插入操作 3 删除操作 4 查询操作 5 代码事例 三、R-tree算法的性能分析 1 时间复杂度 2 空间复杂度 3 影响因素 四、R-tree算法的变体和改进 1 R*-tree算法 2 X-tree算法 3 QR-tree算法 五、R-tree算法的…

深度优先搜索算法C实现

深度优先搜索 (DFS, Depth-First Search) 是一种用于遍历或搜索树或图的算法。这个算法会尽可能深地搜索树的分支。当达到树的末端时,它会回溯到树的前一个节点,直到找到未探索的路径。 下面是一个简单的深度优先搜索的C语言实现,这个实现是在一个无向图中进行的。在这个例…

Hive某字段空值用同组该字段非空值填充

背景&#xff1a; 工作中遇到这样一个业务场景&#xff1a;系统中记录订单提报和订单审核通过两个时间点某业务状态&#xff0c;开发做标记时一个订单产生了两条记录&#xff0c;即提报时记录状态1字段&#xff0c;状态2字段为空&#xff1b;审核通过时产生新纪录记录状态2字段…

axure谷歌插件(直接下载)

axure谷歌插件 在网上找一个谷歌的axure&#xff0c;不是登陆就是收费&#xff0c;离谱。找了好久才找到这个&#xff0c;我下载保存到网盘了&#xff0c;直接下载就ok&#xff0c;永久无提取码。 下载插件文件&#xff0c;打开开发者模式&#xff0c;直接拖进来就ok。 网盘…

esxi上给centos7虚拟机扩容硬盘

原来centos7硬盘分配的空间只有40GB 需要直接扩容到200GB 扩容前 扩容后 扩容步骤&#xff1a; 1 .在esxi平台上关机虚拟机&#xff0c;将硬盘调整为200GB&#xff0c;然后开机 2.请出chatGPT 1. 创建新分区 使用剩余的磁盘空间创建一个新的分区。你可以使用fdisk&#xf…

Flink Keyed State的优化与实践

本期作者 1.背景 Flink SQL在业务使用中有较多的双流join场景&#xff0c;当左右流的流量都较大&#xff0c;Join的等待时间即使为1小时&#xff0c;Flink Keyed State&#xff08;Flink State分Operator State和Keyed State&#xff0c;后文所有State均代表后者&#xff09;的…

opencv识别图形轮廓并计算面积以及在输出图片上显示中文字体

前言 opencv识别带有轮廓的图形,主要是常见数学图形如方形、圆形以及不规则图形,并计算其面积(像素统计)。 配置: 平台:windows 工具:visual studio code 语言:python 库:opencv、Pillow 一、图形识别与计算 opencv处理图形轮廓的步骤如下: 1、将图片转为灰度图:…

数据库(mysql)-基本查询语句(DQL)

查询语句 这边查询是给予一定表格,这边先做个解释 教师表包括(name(姓名),gender(性别),salary(工资),title(职位),subject_id(课程的编号),comm(奖金)) 学生表包括(姓名(name),gender(性别),job(职位),生日(birth)) 模版 SELECT 字段名 FROM 查询表 WHERE 查询语句 或与非…

k8s_入门_命令详解

命令详解 kubectl是官方的CLI命令行工具&#xff0c;用于与 apiserver进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化为 apiserver能识别的信息&#xff0c;进而实现管理k8s各种资源的一种有效途径 1. 帮助 2. 查看版本信息 3. 查看资源对象等 查看No…

Linux应用开发(3):Linux时间操作(time、mktime、localtime等)

1. 简述 在Linux系统中&#xff0c;时间操作函数是编程中经常使用的一部分&#xff0c;它们允许程序获取和设置系统时间&#xff0c;以及对时间进行各种处理。以下是一些常用的时间操作函数的详细介绍。 2. 时间操作 &#xff08;1&#xff09;time(): 获取1970年1月1日以来的…

Docker使用报错信息dial unix /var/run/docker.sock: connect: permission denied

报错信息dial unix /var/run/docker.sock: connect: permission denied masterlocalhost:~$ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/container…

爬虫入门教程(一)

爬虫入门教程 1.什么是爬虫 爬虫是一种自动获取网站数据的程序或脚本。它可以自动模拟人类访问网站,获取网页源代码,解析并提取出所需的数据。 爬虫的工作原理类似于搜索引擎的索引程序&#xff0c;它们会按照预定的规则和算法在互联网上不断地爬取网页&#xff0c;收集信息…

二维相位解包裹理论算法和软件【全文翻译-掩膜切割算法(4.4)】

4.4 掩膜切割算法 在上一节中,我们了解到质量引导路径跟踪算法可以解决一些相位解包问题,而在这些问题上,戈尔茨坦算法会因为分支切割的错位而失败。这是因为质量引导方法采用了更多的信息(质量图)来引导解包路径。在本节中,我们将这一想法与戈尔茨坦算法相结合,产生了…

k8s知识

k8s是用于容器编排和管理的&#xff0c;docker或者ctr是k8s的运行时&#xff0c;k8s通过容器运行时来启动容器&#xff0c;容器启动需要镜像&#xff0c;镜像可以用docker构建&#xff0c;dockerfile就是用于自定义如何构建镜像&#xff0c;所以上面那套流水线就是先用dockerfi…

iperf3使用记录

安装 大部分系统标配工具&#xff1a; yum install -y iperf3参数 常用的参数如下&#xff0c;其他参数请-h Server or Client:-p, --port # server port to listen on/connect to-f, --format [kmgtKMGT] format to report: Kbits, Mbits, Gbits, Tbits-i,…

【Android】java中如何判断设备是否在root状态

前言 客户需求&#xff0c;需要判断设备是否执在root状态。可以理解为是否执行了adb root 设置root状态&#xff0c;已经adb unroot设置unroot状态。 代码分析 分析adb deamon发现&#xff1a;在执行adb root 、adb unroot指令时&#xff0c;系统会更新service.adb.root 变量…

Linux|从 STDIN 读取 Awk 输入

简介 在之前关于 Awk 工具的系列文章中&#xff0c;主要探讨了如何从文件中读取数据。但如果你希望从标准输入&#xff08;STDIN&#xff09;中读取数据&#xff0c;又该如何操作呢&#xff1f; 在本文中&#xff0c;将介绍几个示例&#xff0c;展示如何使用 Awk 来过滤其他命令…