第十四届蓝桥杯省赛C++ C组所有题目以及题解(C++)【编程题均通过100%测试数据】

第一题《求和》【简单模拟】

【问题描述】

求1(含)至20230408(含)中每个数的和。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【代码】

#include <iostream>
using namespace std;
int main()
{long long res = 0;for(int i = 1;i<=20230408;i++) res += i;printf("%lld",res);// 请在此输入您的代码return 0;
}

【答案】

204634714038436


第二题《工作时长》【模拟】

【问题描述】

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【代码】

#include <bits/stdc++.h>
using namespace std;//2022是平年
int Month[13] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};int sum[520];
int month, day, h, mi, s; //月,日,时,分,秒int main() {int ans = 0;for (int i = 0; i < 520; i++) {string str;getline(cin, str);month = (str[6] - '0') + (str[5] - '0') * 10;day = (str[9] - '0') + (str[8] - '0') * 10;h = (str[12] - '0') + (str[11] - '0') * 10;mi = (str[15] - '0') + (str[14] - '0') * 10;s = (str[18] - '0') + (str[17] - '0') * 10;sum[i] = (Month[month - 1] + day) * 86400 + h * 3600 + mi * 60 + s;}sort(sum, sum + 520);for (int i = 0; i < 520; i += 2) {ans += sum[i + 1] - sum[i];}cout << ans << endl;return 0;
}

【答案】

5101913


第三题《三国游戏》【贪心】

本题题解参考这篇博客:【贪心】第十四届蓝桥杯省赛C++ / Java / Python C组《三国游戏》(C++) 


 第四题《填充》【贪心】

本题题解参考这篇博客:【贪心】第十四届蓝桥杯省赛C++ / Java / Python C组《填充》(C++)


第五题 《翻转》【思维】

本题题解参考这篇博客:【思维】第十四届蓝桥杯省赛C++ C组/研究生组 Python A组/C组《翻转》(C++)


第六题《子矩阵》【单调队列】

本题题解参考这篇博客:【单调队列】第十四届蓝桥杯省赛C++ C组 Java C组/研究生组 Python A组《子矩阵》(C++)


第七题《互质数的个数》【欧拉函数+快速幂】

本题题解参考这篇博客:【欧拉函数+快速幂】第十四届蓝桥杯省赛C++ C组 Java A组/研究生组 Python 研究生组《互质数的个数》(C++)


第八题《异或和之差》【trie树】 

【题目描述】

给定一个含有 n 个元素的数组 A_{i},你可以选择两个不相交的子段。

求出这两个子段内的数的异或和的差值的最大值。

【输入格式】

输入的第一行包含一个整数 n。

第二行包含 n 个整数 A_{i},相邻整数之间使用一个空格分隔。

【输出格式】

输出一行包含一个整数表示答案。

【数据范围】

对于 40% 的评测用例,n ≤ 5000;
对于所有评测用例,2 ≤ n ≤ 2×10^{5},0 ≤ A_{i} ≤ 2^{20}

【输入样例】

6
1 2 4 9 2 7

【输出样例】

14

【样例解释】

两个子段可以分别选 1 和 4,9,2,差值为 15−1=14。

【思路】 

求异或最值,一般用trie树做。

trie树可以在len(num)的时间内求出与num异或最大/最小的值
题目求的是区间,我们可以维护一个前缀异或和sum[i],那么我们求一段异或和最大,也就是求前缀和中的与sum[i]异或最大的值,最小同理,

题目求的是两段区间的差值最大,因为两段区间不相交,我们可以先求出前缀的最大/最小值,后缀在求一遍,答案就是前缀最大值-后缀最小值 or 后缀最大值-前缀最小值

【代码】

#include <bits/stdc++.h>using namespace std ;
typedef long long LL ;
typedef pair<LL,int> PLI ; 
const int N = 1e6 + 10 ; int  n , a[N] ; 
int son[2][N] , idx ; 
int mx[N] , mi[N] ;void insert(int x)
{int p = 0 ; for(int i = 20 ; i >= 0 ; i --){int u = (x >> i) & 1 ; if(!son[u][p]) son[u][p] = ++ idx ; p = son[u][p] ; }
}int query_mi(int x)
{int p = 0 , res = 0;for(int i = 20 ; i >= 0 ; i --){int u = (x >> i) & 1 ; if(!son[u][p]){u = !u ; res |= (1 << i) ; }p = son[u][p] ;}return res ; 
}
int query_mx(int x)
{int p = 0 , res = 0;for(int i = 20 ; i >= 0 ; i --){int u = (x >> i) & 1 ; if(son[!u][p]) res |= (1 << i) ;else u = !u ;  p = son[!u][p] ; }return res ; 
}int main()
{cin >> n ;for(int i = 1 ; i <= n; i ++) cin >> a[i] ; mx[0] = 0 , mi[0] = 2e9 ;int sum = 0 ;insert(sum) ; for(int i = 1 ; i <= n ; i ++){sum ^= a[i] ; mx[i] = max(mx[i - 1] , query_mx(sum)) ;mi[i] = min(mi[i - 1] , query_mi(sum)) ; insert(sum) ; }memset(son , 0 , sizeof son) ; idx = 0 ; sum = 0 ;int ans = 0 , mx2 = 0 , mi2 = 2e9; insert(sum) ; for(int i = n ; i ; i --){sum ^= a[i] ; mx2 = max(mx2 , query_mx(sum)) ; mi2 = min(mi2 , query_mi(sum)) ; ans = max({ans , mx[i - 1] - mi2 , mx2 - mi[i - 1]}) ; insert(sum) ; }cout << ans << endl ;return 0 ;
}

第九题《公因数匹配》【质因数分解】 

【题目描述】

给定 n 个正整数 A_{i},请找出两个数 i,j 使得 i<j 且 A_{i} 和 A_{j} 存在大于 1 的公因数。

如果存在多组 i,j,请输出 i 最小的那组。

如果仍然存在多组 i,j,请输出 i 最小的所有方案中 j 最小的那组。

【输入格式】

输入的第一行包含一个整数 n。

第二行包含 n 个整数分别表示 A_{1},A_{2},⋅⋅⋅,A_{n},相邻整数之间使用一个空格分隔。

【输出格式】

输出一行包含两个整数分别表示题目要求的 i,j,用一个空格分隔。

由于官方没有提及无解时如何进行输出,所以本题目前保证有解。

【数据范围】

对于 40% 的评测用例,n≤5000;
对于所有评测用例,1≤n≤10^{5},1≤Ai≤10^{6}

【输入样例】

5
5 3 2 6 9

【输出样例】

2 4

【代码】

#include <iostream>
#include <algorithm>
#include <vector>
#define x first // 宏定义,方便使用pair中的两个元素
#define y second
using namespace std;
typedef pair<int, int> PII; // 定义pair类型,用于存放下标
const int N = 1e6 + 10;
int n;
int a[N]; // a数组用于存放每个质因子在数列中最后一次出现的位置
vector<PII> v; // 存放有重叠的两个数的下标
int main()
{scanf("%d", &n);for (int i = 1; i <= n; i ++){int x;scanf("%d", &x);// 对x进行质因数分解for (int j = 2; j <= x / j; j ++){if (x % j == 0){// 如果j已经在数列中出现过了,说明有至少一个数和当前数在j这个质因子上有重叠if (a[j])   v.push_back({a[j], i}); else    a[j] = i; // 否则将j在a数组中标记为当前数在数列中的下标while (x % j == 0)  x /= j; // 将j从x中除掉,以便下一个质因子的分解}}if (x > 1)  {// 如果x剩下了一个大于1的质因子,同上处理if (a[x])   v.push_back({a[x], i});else    a[x] = i;}}sort(v.begin(), v.end()); // 按照第一个元素(之前标记的下标)排序printf("%d %d", v[0].x, v[0].y); // 输出第一个元素即可return 0;
}

第十题《子树的大小》【模拟】 

【题目描述】

【输入格式】

输入包含多组询问。

输入的第一行包含一个整数 T,表示询问次数。

接下来 T 行,每行包含三个整数 n,m,k 表示一组询问。

【输出格式】

输出 T 行,每行包含一个整数表示对应询问的答案。

【数据范围】

对于 40% 的评测用例,T≤50,n≤10^{6},m≤16;
对于所有评测用例,1≤T≤10^{5},1≤k≤n≤10^{9},2≤m≤10^{9}

【输入样例】

3
1 2 1
11 3 4
74 5 3

【输出样例】

1

2

24

【思路】

题解来源:AcWing 4971. 子树的大小 - AcWing

【代码】

#include<iostream>
#include<cstring>
#include<algorithm>#define int long long 
using namespace std;typedef long long ll;int n, m;
int k;
int sum;
signed main()
{int T;cin >> T;while(T --){cin >> n >> m >> k;int t = 1;sum = 1;while(sum < k){t *= m;sum += t;}int ans  = 0, p = 1;int l = k - (sum - t) - 1;while(sum < n){ans += p;l = l * m;t *= m;p *= m;sum += t;}n -= sum - t;ans += min(p, max(0ll, n - l));cout << ans << endl;}return 0;
}

 以上内容部分题目题解摘自他人博客题解,在题目处均已标明出处。若有侵权,私信删除。

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

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

相关文章

最快捷读取xlsx,用python读取excel转换成json

这是中英文json&#xff0c;用在国际化vue上的&#xff0c;业务人员统计的表格&#xff0c;我需要读取进行转换 # -*- coding: utf-8 -*-import pandas as pd import json# 读取Excel文件中的数据 excel_file rD:\解析excel\中英.xlsx df pd.read_excel(excel_file)# 生成中…

通过dockerfile制作代码编译maven3.8.8+jdk17 基础镜像

一、背景&#xff1a; paas平台维护过程中有一个流水线的工作需要支持运维&#xff0c;最近有研发提出新的需求要制作一个代码编译的基础镜像出来&#xff0c;代码编译的基础镜像需求如下&#xff1a; maven版本&#xff1a;3.8.8版本 jdk版本&#xff1a;17版本&#xff0c;小…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(2)

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 初级教程素材 等文件 https://www.alipan.com/s/fC…

个人简历主页搭建系列-04:网站初搭建

准备工作差不多了&#xff0c;该开始搭建网站了&#xff01; 这次我们先把网站搭建部署起来&#xff0c;关于后续主题内容等更换留到后续。 创建源码文件夹 首先通过 hexo 创建本地源码文件夹。因为最终部署的 github 仓库格式为 websiteName.github.io&#xff08;websiteN…

注意力机制篇 | YOLOv8改进之在C2f模块添加EMA注意力机制(附2种改进方法)

前言:Hello大家好,我是小哥谈。EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更…

操作系统系列学习——操作系统历史

文章目录 前言操作系统历史 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招&#xff0c;计划学习操作系统并完成6.0S81&#xff0c;加油&#xff01; 本文总结自B站【哈工大】操作系统 李治军&#xff08;全32讲&#xff09; 老师课程讲的非常好&#xff0c;感谢 【哈工大…

MSTP环路避免实验(华为)

思科设备参考&#xff1a;MSTP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 MSTP&#xff08;多生成树协议&#xff09;&#xff0c;MSTP解决了STP和RSTP没有考虑vlan的问题&#xff0c;STP和RSTP将所有的vlan共享为一个生成树实例&#xff0c;无法实现…

Delphi模式编程

文章目录 Delphi模式编程涉及以下几个关键方面&#xff1a;**设计模式的应用****Delphi特性的利用****实际开发中的实践** Delphi模式编程的实例 Delphi模式编程是指在使用Delphi这一集成开发环境&#xff08;IDE&#xff09;和Object Pascal语言进行软件开发时&#xff0c;采用…

TR2 - Transformer模型的复现

目录 理论知识模型结构结构分解黑盒两大模块块级结构编码器的组成解码器的组成 模型实现多头自注意力块前馈网络块位置编码编码器解码器组合模型最后附上引用部分 模型效果总结与心得体会 理论知识 Transformer是可以用于Seq2Seq任务的一种模型&#xff0c;和Seq2Seq不冲突。 …

伦敦银短线交易频率可以有多高?

伦敦银是很适合于短线交易的品种&#xff0c;至于交易的频率可以短到什么程度&#xff0c;取决于投资者采用的是手动交易&#xff0c;还是程序化的交易。高频交易&#xff08;HFT&#xff09;是一种利用计算机算法和高速网络进行的快速交易策略。高频交易者会利用复杂的数学模型…

提取gdip-yolo与ia-seg中的图像自适应模块进行图像去雾与亮度增强

gdip-yolo与ia-seg都是一种将图像自适应模块插入模型前面,从而提升模型在特定数据下检测能力的网络结构。gdip-yolo提出了gdip模块,可以应用到大雾数据与低亮度数据(夜晚环境),然后用于目标检测训练;ia-seg将ia-yolo中的代码修改了一下修车了ipam模块,应用到低亮度数据(…

新能源充电桩站场视频汇聚系统建设方案及技术特点分析

随着新能源汽车的普及&#xff0c;充电桩作为新能源汽车的基础设施&#xff0c;其安全性和可靠性越来越受到人们的关注。为了更好地保障充电桩的安全运行与站场管理&#xff0c;TSINGSEE青犀&触角云推出了一套新能源汽车充电桩视频汇聚管理与视频监控方案。 方案采用高清摄…

游戏赛道新机会:善用数据分析,把握游戏赛道广告变现良机 | TOPON变现干货

12月10日&#xff0c;由罗斯基联合TopOn、钛动科技共同主办的《游戏赛道新机会》主题系列沙龙在武汉举办。活动邀请了国内外多家业内知名公司的负责人到场分享&#xff0c;现场嘉宾分别从自己擅长的领域出发&#xff0c;通过数据分析&#xff0c;案例复盘等多个维度方向进行讲解…

国内IP代理软件电脑版:深入解析与应用指南

随着互联网技术的快速发展&#xff0c;网络活动日益丰富多样&#xff0c;IP代理软件也因其独特的功能和优势&#xff0c;成为许多电脑用户不可或缺的工具。在国内&#xff0c;由于网络环境的复杂性和特殊性&#xff0c;选择一款稳定、高效的IP代理软件电脑版尤为重要。虎观代理…

SpringBoot 登录认证(二)

SpringBoot 登录认证&#xff08;一&#xff09;-CSDN博客 SpringBoot 登录认证&#xff08;二&#xff09;-CSDN博客 SpringBoot登录校验&#xff08;三&#xff09;-CSDN博客 HTTP是无状态协议 HTTP协议是无状态协议。什么又是无状态的协议&#xff1f; 所谓无状态&…

刷题之动态规划

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的题目了&#xff0c;要特别注意初始化的时候给什么值。 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么->dp[i]表示什么状态转移方程&#xff1a; dp[i] 等于什么1 和 2 是…

用grafana+prometheus+cadvisor监控容器指标数据,并查询当前容器的网速网络用量

前言 整理技术&#xff0c;在这篇文章中&#xff0c;将会搭建grafanaprometheuscadvisor监控容器&#xff0c;并使用一个热门数据看板&#xff0c;再监控容器的性能指标 dashboard效果 这个是node-exporter采集到的数据&#xff0c;我没装node-exporter&#xff0c;而且这也…

第三十二天-Django模板-DTL模板引擎

目录 1.介绍 2. 使用 1.配置jinja2 2.DTL模板变量使用 3.与jinja2区别 4.模板标签使用 1.循环 2.条件控制 3.注释 4.url解析 5.显示时间 5.模板的基础与包含 6.过滤器 内置过滤器 自定义过滤器 1.介绍 2. 使用 1.配置jinja2 2.DTL模板变量使用 与jinja2语法相似…

短视频矩阵系统--技术3年源头迭代

短视频矩阵系统核心技术算法主要包括以下几个方面&#xff1a; 1. 视频剪辑&#xff1a;通过剪辑工具或API从各大短视频平台抓取符合要求的视频。这些视频通常符合某些特定条件&#xff0c;如特定关键词、特定时间段发布的视频、视频点赞评论转发等数据表现良好的视频。 2. 视…

vue3+threejs新手从零开发卡牌游戏(二十一):添加战斗与生命值关联逻辑

首先将双方玩家的HP存入store中&#xff0c;stores/common.ts代码如下&#xff1a; import { ref, computed } from vue import { defineStore } from piniaexport const useCommonStore defineStore(common, () > {const _font ref() // 字体const p1HP ref(4000) // 己…