蓝桥杯第十六届c组c++题目及个人理解

article/2025/8/15 4:12:47

本篇文章只是部分题目的理解,代码和思路仅供参考,切勿当成正确答案,欢迎各位小伙伴在评论区与博主交流!

目录

题目:2025

题目解析

核心提取

代码展示

题目:数位倍数

题目解析

核心提取 

代码展示

题目:倒水

题目解析

核心提取 

代码原理

代码展示

个人理解

题目:拼好数

题目解析

核心提取 

代码原理

代码展示

题目 :最短距离

题目解析

示例解析

代码原理

代码展示


题目:2025

题目解析

核心提取

要求的数中至少有1个0、2个2、1个5

代码展示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool judge(int n)
{int x = n;int nums_2 = 0, nums_0 = 0, nums_5 = 0; while(x){int tmp = x % 10;if(tmp == 2) nums_2++;if(tmp == 0) nums_0++;if(tmp == 5) nums_5++;x /= 10;}if(nums_2 == 2 && nums_0 == 1 && nums_5 == 1) return true;else return false;
}
int main()
{int cnt = 0; for(int i = 1; i <= 20250412; i++){if(judge(i))//为真{cnt++;//计数器 + 1 }}cout << cnt;return 0;} 

题目:数位倍数

题目解析

核心提取 

数位之和%5为0

代码展示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool judge(int n)
{int x = n;int sum_shuwei = 0;while(x){int tmp = x % 10;sum_shuwei += tmp;x /= 10;}if(sum_shuwei % 5 == 0) return true;else return false;
} 
int main()
{int cnt = 0; for(int i = 1; i <= 202504; i++){if(judge(i))//为真{cnt++;//计数器 + 1 }}cout << cnt;return 0;} 

题目:倒水

题目解析

核心提取 

第i个瓶子与第i + k个瓶子内水的颜色相同

第i个瓶子和第j(i + k)个瓶子内的水满足要求i < j

代码原理

这里的代码原理主要是凑,满足i<j才能结束凑

注意:减表示第i个瓶子内的水倒出      加表示第i + k个瓶子的水增加

代码展示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N = 100000;
int a[N];
int main()
{int n = 0, k = 0;cin >> n >> k;for(int i = 1; i <= n; i++){cin >> a[i];}for(int i = 1; i <= n / 2; i++){for(int j = i + k; j <= n; j++){while(a[i] >= a[j]){a[i]--;a[j]++;}}}int min_val = 0x3f3f3f3f;for(int i = 1; i <= n; i++){min_val = min(min_val, a[i]);}cout << min_val;return 0;} 

个人理解

本段代码可能存在一定的缺陷,当时在比赛中也想不出啥好的思路,于是就分析了一下这个例子,于是就发现可以凑,反正时间复杂度肯定超时,有新思路的小伙伴欢迎在评论区与博主分享 

题目:拼好数

题目解析

核心提取 

好数的定义:6的个数≥6个,且每一组最多只能有三个数

代码原理

红色框所框住的是重点

代码展示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
struct Node
{string val;int val_6_nums;//统计6的个数 
}a[N];
int jisuan(string n)//统计6的个数 
{string x = n;int nums_6 = 0;for(int i = 0; i < n.size(); i++){if(n[i] == '6') nums_6++;}return nums_6;
}
bool cmp(Node a, Node b)
{if(a.val_6_nums != b.val_6_nums)return a.val_6_nums > b.val_6_nums;else return a.val > b.val;
}
int main()
{int n = 0;cin >> n;for(int i = 1; i <= n; i++){cin >> a[i].val;}for(int i = 1; i <= n; i++){a[i].val_6_nums = jisuan(a[i].val);//先统计每个字符串的中6的个数 }sort(a + 1, a + 1 + n, cmp);//排序,贪心的体现 int ret = 0;int i = 1;int tm = 0;while(i <= n){if(a[i].val_6_nums >= 6) {ret++;i++;}else if(a[i].val_6_nums < 6){a[i + 1].val += a[i].val;//拼接字符串 a[i + 1].val_6_nums = jisuan(a[i + 1].val);//更新6的个数 if(tm == 3)break;tm++; }i++;}cout << ret;return 0;} 

当然还是那句话本段代码可能存在一些缺陷,所以代码和思路仅供参考,如果有新的思路或者代码上有新的缺陷,欢迎在评论区留言

题目 :最短距离

题目解析

 首先我们先来讲一下这个示例

示例解析

代码原理

这题的代码原理与三国游戏的原理比较类似,总之也是贪心

代码展示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N = 50010;
int a[N], b[N];
int main()
{int n = 0;cin >> n;for(int i = 1; i <= n; i++) cin >> a[i];for(int i = 1; i <= n; i++) cin >> b[i];sort(a + 1, a + 1 + n);//排序,贪心的体现 sort(b + 1, b + 1 + n);int ret = 0;for(int i = 1; i <= n; i++){ret += abs(a[i] - b[i]);}cout << ret;return 0;} 

ok本篇文章的分享就到这里,至此蓝桥杯系列的文章完结,当然有需要的小伙伴可以留言,博主看到有小伙伴要求依旧会更新。


http://www.hkcw.cn/article/PVVKjxOWWF.shtml

相关文章

C++日新月异的未来代码:C++11(上)

文章目录 1.统一的列表初始化1.1 普通{ }初始化1.2 initializer_list 2.声明2.1 auto、nullptr2.2 decltype 3.左值右值3.1 概念3.2 左值引用与右值引用比较3.3 左值引用与右值引用的应用3.4 完美转发 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xf…

C++从入门到实战(十二)详细讲解C++如何实现内存管理

C从入门到实战&#xff08;十二&#xff09;详细讲解C如何实现内存管理 前言一、C内存管理方式1. new/delete操作内置类型2. 异常与内存管理的联系&#xff08;简单了解&#xff09;3. new和delete操作自定义类型 二、 operator new与operator delete函数&#xff08;重点&…

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

文章目录 【2025年最新版】Java JDK安装、环境配置教程 &#xff08;图文非常详细&#xff09;1. JDK介绍2. 下载 JDK3. 安装 JDK4. 配置环境变量5. 验证安装6. 创建并测试简单的 Java 程序6.1 创建 Java 程序&#xff1a;6.2 编译和运行程序&#xff1a;6.3 在显示或更改文件的…

【Linux系统】从 C 语言文件操作到系统调用的核心原理

文章目录 前言lesson 15_基础IO一、共识原理二、回顾C语言接口2.1 文件的打开操作2.2 文件的读取与写入操作2.3 三个标准输入输出流 三、过渡到系统&#xff0c;认识文件系统调用3.1 open 系统调用1. 比特位标志位示例 3.2 write 系统调用1. 模拟实现 w 选项2. 模拟实现 a 选项…

JavaSwing之--JTextField

JavaSwing之–JTextField JTextField 是一个允许编辑单行文本的轻量级组件&#xff0c;它提供了一系列的构造方法和常用方法用来编写可以存储文本的文本框满足程序功能的需求。 以下在简要介绍常用构造方法、普通方法后详解各种方法的应用及举例。 一、构造方法 方法名称功…

Windows系统之VHD安装

环境准备 工具说明Dism部署系统、提取和转换系统镜像等等&#xff0c;还有很多功能大家可以自行探索。这里只用到Dism的部署系统功能。 Releases Chuyu-Team/Dism-Multi-language GitHubbcdedit.exe自带工具 C:\Windows\System32\bcdedit.exe 创建虚拟磁盘 首先右键点击我…

解决Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tre

问题描述 在更新自建基础项目过程中&#xff0c;compile、install报错。 Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualid 解决方案 问题原因是Lombok &#xff0c;与 JDK 21 兼容的最低 Lombok 版本是…

【C++】二叉搜索树 - 从基础概念到代码实现

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;C &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路 文章目录 1. 二叉搜索树的概念2. 二叉搜索树的性能分析3. 二叉搜索树的插入4. 二叉搜素树的查找5. 二叉搜索树的删除6.二…

C++之类和对象基础

⾯向对象三⼤特性&#xff1a;封装、继承、多态 类和对象 一.类的定义1. 类的定义格式2.类域 二.实例化1.对象2.对象的大小 三.this指针 在 C 的世界里&#xff0c;类和对象构成了面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;的核心框架&…

报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法

在运行项目时出现java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualidzz这样的报错 解决方法 1.第一步&#xff1a;在pom文件中将lombok的版本改成最新的 此时1.18.34是新…

2025-03-12 Python深度学习1——安装Anaconda与PyTorch库

文章目录 1 配置 Anaconda1.1 下载1.2 安装1.3 配置环境变量1.4 检查安装 2 安装 PyTorch 库2.1 创建 DL 环境2.2 安装/升级 CUDA2.3 配置环境变量2.4 安装 Pytorch 库方法一&#xff08;不稳定&#xff09;方法二&#xff08;推荐&#xff09; 2.5 检查安装 3 Pycharm Communi…

C++ 关联式容器:map,multimap,set,multiset

目录 引言 一、关联式容器概述 1.1 与序列式容器的区别 1.2 底层结构 二、set容器详解set介绍 2.1 set的特性 2.2 set的模板参数 2.3 set的常用接口 2.4 set使用示例 三、map容器详解map介绍 3.1 map的特性 3.2 map的模板参数 3.3 map的常用接口 3.4 map使用示例 …

从零开始配置Qt+VsCode环境

从零开始配置QtVsCode环境 文章目录 从零开始配置QtVsCode环境写在前面扩展安装及配置Qt Configure配置 VsCode创建Qt工程VsCodeQMakeMinGwVsCodeQMakeMsvcVsCodeCMakeMinGwVsCodeCMakeMsvcQtCreatorQMakeMinGw->VsCodeQtCreatorQMakeMsvc->VsCodeQtCreatorCMakeMinGw-&g…

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(一) - 三相逆变器的搭建

Matlab/Simulink - BLDC直流无刷电机仿真基础教程&#xff08;一&#xff09; - 三相逆变器的搭建 前言一、BLDC电机六步换相简明控制原理二、Simulink中BLDC电机模块的机械连接三、三相逆变电路的搭建四、仿真参数设置与仿真结果验证五、补充内容参考链接 前言 本系列文章分享…

Lapce:一款用 Rust 编写的快速且强大的代码编辑器

Lapce&#xff08;IPA&#xff1a;/lps/&#xff09;是一个使用纯 Rust 编写的开源代码编辑器。通过利用 OpenGL 渲染 GUI&#xff0c;以及 Rust 提供的性能&#xff0c;采用Xi-Editor的Rope Science设计&#xff0c;可实现闪电般的快速计算。 Stars 数35888Forks 数1113 主要…

SpringBoot启动后初始化的几种方式

目录 一、静态代码块 二、构造方法 三、PostConstruct 四、InitializingBean 接口 五、 Bean 注解中的 initMethod 六、 CommandLineRunner 接口 七、ApplicationRunner 接口 八、EventListener事件 九、SmartInitializingSingleton接口 十、ApplicationListener接口…

【MySQL课程学习】:MySQL安装,MySQL如何登录和退出?MySQL的简单配置

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;MySQL课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 MySQL在Centos 7环境下的安装&#xff1a; 卸载…

Node.js下载安装及环境配置教程(保姆级教程)

一、安装程序 &#xff08;安装包放在文章最后需要的友友可自取哦&#xff09; &#xff08;1&#xff09;下载完成后&#xff0c;双击安装包&#xff0c;开始安装Node.js &#xff08;2&#xff09;此位置可修改为自己的安装路径&#xff0c;修改完后点击next &#xff08;3…

com.mysql.cj.jdbc.exceptions.CommunicationsException Communications link failure 问题解决

前言: 一般这个报错大多是网络原因导致的&#xff0c;确保你不是网络问题再往下看 问题 在一个方法上&#xff08;该方法非常复杂执行时间长&#xff09;加了 Transactional(rollbackFor Exception.class)后出现了如下图所示的错误 解决&#xff1a; 经过排查并非网络问…

【解决方案】CloudFront VPC Origins 实践流程深入解析 —— 安全高效架构的实战之道

目录 引言一、VPC Origins 的核心价值&#xff08;一&#xff09;安全性提升&#xff08;二&#xff09;运维效率优化&#xff08;三&#xff09;成本节约&#xff08;四&#xff09;全球分发能力的保留 二、VPC Origins 的架构解析&#xff08;一&#xff09;流量路径设计&…