【第15届蓝桥杯】软件赛CB组省赛
个人主页:Guiat
归属专栏:算法竞赛真题题解
文章目录
- A. 握手问题(填空题)
- B. 小球反弹(填空题)
- C. 好数
- D. R格式
- E. 宝石组合
- F. 数字接龙
- G. 爬山
- H. 拔河
正文
总共8道题。
A. 握手问题(填空题)
【题目】握手问题
【分析】
纯考察数学中简单排列组合。考虑相互握手的43人:(43 * 42) / 2;考虑剩下7人与43人分别握手:7 * 43;两者相加即最终答案。
【答案】1204
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;void solve() { cout << 1204 << '\n'; }int main() { IOS; solve(); return 0; }
B. 小球反弹(填空题)
【题目】小球反弹
【分析】
考察高中简单物理思维。小球从左上角出发最终回到左上角,说明水平和竖直位移分别是长和宽的偶数倍。又速率之比为位移之比(15:17),可写双重循环控制总过程中长和宽的倍数暴力求解即可。
【答案】1100325199.77
【AC_Code】
#include <iostream>
#include <iomanip>
#include <cmath>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 1e4;
int L = 343720, W = 233333;int solve()
{for (int i = 2; i <= N; i += 2) for (int j = 2; j <= N; j += 2){if (L * i * 17 == W * j * 15){cout << fixed << setprecision(2) << sqrt(pow(L * i, 2) + pow(W * j, 2)) << '\n';return 0;}}
}int main() { IOS; solve(); }
C. 好数
【题目】好数
【分析】
考察模拟。写一个check函数判断是否为好数:逆向思维 ①奇数位为偶数时,返回false;②偶数位为奇数时返回false;①②包含了不满足的所有情况,都不满足最后返回true。其中digit(位数)的使用很关键(在check函数开头设置为1,否则可能会错误累加),还有不要出现悬空else的情况。
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;int n, cnt, digit;bool check(int i)
{digit = 1;while (i){if (digit % 2 == 1) { if ((i % 10) % 2 == 0) return false; }else if ((i % 10) % 2 != 0) return false;digit ++; i /= 10;}return true;
}void solve()
{cin >> n; for (int i = 1; i <= n; i ++) if (check(i)) cnt ++; cout << cnt << '\n';
}int main()
{IOS; solve();return 0;
}
D. R格式
【题目】R 格式
【分析】
一道模拟题。“将浮点数乘以2 ^ n”这句话可以看出数据很大,考虑用数组模拟高精度算法(低精度乘以高精度)。大体思路是将浮点数d处理成字符串,将字符串反转方便处理小数部分,之后依次乘2,进行模拟,最后判断四舍五入,倒序输出答案。
【AC_Code】
#include <iostream>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0); using namespace std;const int N = 1e6 + 10;
int n, pos, len, ans[N]; string d;void solve()
{cin >> n >> d; reverse(d.begin(), d.end());pos = d.find('.'); d.erase(pos, 1); len = d.size();for (int i = 0; i < len; i ++) ans[i + 1] = d[i] - '0';for (int i = 1; i <= n; i ++){for (int j = 1; j <= len; j ++) ans[j] *= 2;for (int j = 1; j <= len; j ++) ans[j + 1] += ans[j] / 10, ans[j] %= 10;if (ans[len + 1]) len ++;}if (ans[pos] >= 5) ans[pos + 1] ++;for (int i = pos + 1; i <= len; i ++) ans[i + 1] += ans[i] / 10, ans[i] %= 10;if (ans[len + 1]) len ++;for (int i = len; i > pos; i --) cout << ans[i]; cout << '\n';
}int main()
{IOS; solve();return 0;
}
E. 宝石组合
【题目】宝石组合
【分析】
有些地方不太明白,先给出代码。
【AC_Code】
#include <iostream>
#include <vector>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int MAXN = 1e5 + 10; int n, h[MAXN]; vector<int> fac[MAXN];void solve()
{cin >> n; for (int i = 1; i <= n; ++ i) cin >> h[i];sort(h + 1, h + 1 + n);for (int i = 1; i <= n; ++ i) for (int j = 1; j * j <= h[i]; ++j){if (h[i] % j == 0){fac[j].push_back(h[i]);if (h[i] / j != j) fac[h[i] / j].push_back(h[i]);}}for (int i = MAXN; i >= 1; -- i){if (fac[i].size() >= 3){int a = fac[i][0], b = fac[i][1], c = fac[i][2];if (__gcd(__gcd(a, b), c) == i) { cout << a << " " << b << " " << c << "\n"; return; }}}
}int main()
{IOS; solve();return 0;
}
F. 数字接龙
【题目】数字接龙
【分析】
不会,先给出代码。
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 15;
int n, k, nums[N][N],
dx[8] = { -1, -1, 0, 1, 1, 1, 0, -1 },
dy[8] = { 0, 1, 1, 1, 0, -1, -1, -1 };
string nber; bool vis[N][N], check[N][N][N][N];bool dfs(int a, int b)
{if (a == n - 1 && b == n - 1) return nber.size() == n * n - 1;vis[a][b] = true;for (int i = 0; i < 8; i ++){int x = a + dx[i], y = b + dy[i];if (x < 0 || x >= n || y < 0 || y >= n) continue;if (vis[x][y]) continue;if (nums[x][y] != (nums[a][b] + 1) % k) continue;if (i % 2 && (check[a][y][x][b] || check[x][b][a][y])) continue;check[a][b][x][y] = true; nber += i + '0';if (dfs(x, y)) return true;nber.pop_back(); check[a][b][x][y] = false;}vis[a][b] = false;return false;
}void solve()
{cin >> n >> k;for (int i = 0; i < n; i ++) for (int j = 0; j < n; j ++) cin >> nums[i][j];if (!dfs(0, 0)) cout << -1 << '\n';else cout << nber << '\n';
}int main()
{IOS; solve();return 0;
}
G. 爬山
【说明】疑似为错题,直接跳过。
H. 拔河
【题目】拔河
【分析】
【AC_Code】
#include <iostream>
#include <set>
#include <cmath>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;
using ll = long long;const int N = 1e3 + 10;
int n; ll a[N], res = 1e9; multiset<long long> s;ll minn(ll a, ll b) { if (a < b) return a; else return b; }void solve()
{cin >> n; for (int i = 1; i <= n; i++) cin >> a[i], a[i] += a[i - 1];for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) s.insert(a[j] - a[i - 1]);for (int i = 1; i <= n - 1; i++){for (int j = i; j <= n; j++){auto k = a[j] - a[i - 1]; s.erase(s.find(k));}for (int j = 1; j <= i; j++){auto k = a[i] - a[j - 1]; auto p = s.lower_bound(k);if (p != s.end()) res = minn(res, abs(*p - k));if (p != s.begin()) p--, res = minn(res, abs(*p - k));}}cout << res << '\n';
}int main()
{IOS; int _ = 1; // cin >> _; while (_ --) solve();return 0;
}
结语
感谢您的阅读!期待您的一键三连!欢迎指正!
相关文章:
【第15届蓝桥杯】软件赛CB组省赛
个人主页:Guiat 归属专栏:算法竞赛真题题解 文章目录 A. 握手问题(填空题)B. 小球反弹(填空题)C. 好数D. R格式E. 宝石组合F. 数字接龙G. 爬山H. 拔河 正文 总共8道题。 A. 握手问题(填空题&…...
20242817李臻《Linux⾼级编程实践》第四周
20242817李臻《Linux⾼级编程实践》第4周 一、AI对学习内容的总结 第5章 Linux进程管理 5.1 进程基本概念 进程与程序的区别 程序:静态的二进制文件(如/bin/ls),存储在磁盘中,不占用运行资源。进程:程…...
【AI大模型】提示词(Prompt)工程完全指南:从理论到产业级实践
【AI大模型】提示词(Prompt)工程完全指南:从理论到产业级实践 一、Prompt 提示词介绍:AI的“密码本” 1. Prompt的底层定义与价值 本质:Prompt是人与AI模型的“协议语言”,通过文本指令激活模型的特定推理…...
HTML中required与aria required区别
在HTML中,required和aria-required"true"都用于标识表单字段为必填项,但它们的作用和适用场景有所不同: 1. required 属性 • 功能属性:属于HTML5原生属性,直接控制表单验证逻辑。 • 作用: • …...
MySQL 锁
MySQL中最常见的锁有全局锁、表锁、行锁。 全局锁 全局锁用于锁住当前库中的所有实例,也就是说会将所有的表都锁住。一般用于做数据库备份的时候就需要添加全局锁,数据库备份的时候是一个表一个表备份,如果没有加锁的话在备份的时候会有其他的…...
halcon几何测量(一)3d_position_of_rectangle
目录 一、提取目标区域,选择不和边缘相交的目标二、计算矩形工件的姿态三、显示矩形的立体结构 一、提取目标区域,选择不和边缘相交的目标 1、提取目标区域:mean_image 、dyn_threshold 、fill_up 、connection 、select_shape 2、选择不和边…...
docker可视化之dpanel
1. 使用镜像加速 vim /etc/docker/daemon.json{ "registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https…...
Swagger 从 .NET 9 中删除:有哪些替代方案
微软已经放弃了对 .NET 9 中 Swagger UI 包 Swashbuckle 的支持。他们声称该项目“不再由社区所有者积极维护”并且“问题尚未得到解决”。 这意味着当您使用 .NET 9 模板创建 Web API 时,您将不再拥有 UI 来测试您的 API 端点。 我们将调查是否可以在 .NET 9 中使用…...
Qt 绘图
一、基础概念 Qt 绘图基于 QPainter(画家类)、QPaintDevice(绘图设备)和 QPaintEngine(绘图引擎)的协作实现。其中: QPainter 提供绘制图形、文本和图像的接口(如 drawLine()、d…...
用 Vue 3.5 TypeScript 重新开发3年前甘特图的核心组件
回顾 3年前曾经用 Vue 2.0 开发了一个甘特图组件,如今3年过去了,计划使用Vue 3.5 TypeScript 把组件重新开发,有机会的话再开发一个React版本。 关于之前的组件以前文章 Vue 2.0 甘特图组件 下面录屏是是 用 Vue 3.5 TypeScript 开发的目前…...
Python使用总结之Flask构建文件服务器,通过网络地址访问本地文件
Python使用总结之Flask构建文件服务器,通过网络地址访问本地文件 在 Web 开发中,静态文件(如图片、CSS、JavaScript)的管理是基础且重要的环节。Flask 提供的 send_from_directory 函数为开发者提供了灵活的文件服务解决方案。本文将详细解析其原理、用法及最佳实践。 一…...
从Excel到搭贝的转变过程
从Excel到搭贝 1. 简介 1.1 Excel简介 Excel 作为元老级的数据管理工具,功能强大且被广泛使用,但在现代工作场景中仍存在一些局限性,例如: 数据量处理有限:处理大规模数据时,Excel可能运行缓慢或崩溃。…...
C语言经典代码练习题
1.输入一个4位数:输出这个输的个位 十位 百位 千位 #include <stdio.h> int main(int argc, char const *argv[]) {int a;printf("输入一个4位数:");scanf("%d",&a);printf("个位:%d\n"…...
Compose 的产生和原理
引言 compose 出现的目的: 重新定义android 上ui 的编写方式。为了提高android 原生ui开发效率。让android 的UI开发方式跟上时代。 正文 compose 是什么? 就是一套ui框架 和flutter 一样是一套ui框架 Flutter:跨平台开发趋势与企业应用的…...
JS做贪吃蛇小游戏(源码)
一、HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><link rel…...
c语言笔记 结构体内嵌套结构体的表示方式
目录 结构体内嵌套结构体 问:我们都该如何去访问该结构体里面的结构体的成员呢?怎么去给里面的成员赋值呢? 说明: 运行上述代码后,输出结果如下: 结构体内嵌套结构体 背景:如果我们在结构体中放结构体࿰…...
Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称
Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称 Vue3中v-model默认使用modelValue作为prop,update:modelValue作为事件,而Vue2使用的是value和input。此外,Vue3允许通过参数的方式为组件添加多个v-model绑定࿰…...
STM32---FreeRTOS事件标志组
一、简介 事件标志位:用一个位,来表示事件是否发生 事件标志组:一组事件标志位的集合,可以简单的理解时间标志组,就是一个整体。 事件标志租的特点: 它的每一个位表示一个时间(高8位不算&…...
分享一个项目中遇到的一个算法题
需求背景: 需求是用户要创建一个任务计划在未来执行,要求在创建任务计划的时候判断选择的时间是否符合要求,否则不允许创建,创建的任务类型有两种,一种是单次,任务只执行一次;另一种是周期&…...
入门 Sui Move 开发:9. 一个 Sui dApp 前端项目
内容概览 接下来一起通过 PTB 和 Navi SDK 实现一个一键存入借出的简单 DApp。 本节分为两部分: 创建一个 DApp 前端项目以及 Sui dApp Kit 的使用;了解 Navi SDK,主要包含的功能以及如何实现存入和借出功能; 最终完成我们的项…...
如何打造安全稳定的亚马逊采购测评自养号下单系统?
在当今的电商领域,亚马逊作为全球领先的在线购物平台,其商品种类繁多,用户基数庞大,成为了众多商家和消费者的首选。而对于一些需要进行商品测评或市场调研的用户来说,拥有一个稳定、安全的亚马逊账号体系显得尤为重要…...
c语言笔记 结构体基础
目录 基础知识 结构体定义 基础知识 在c语言中变量是有类型的,比如整型,char型,浮点型等,这些都是单一的类型,那么如果说我要定义一个学生的信息,那么这些单一的类型是不足以表达一个学生的全部信息&#…...
添加 ChatGPT/Grok/Gemini 到浏览器搜索引擎
文章目录 添加 ChatGPT/Grok/Gemini 到浏览器搜索引擎如何添加步骤 1: 打开浏览器设置步骤 2: 添加新搜索引擎步骤 3: 保存设置 注意事项 添加 ChatGPT/Grok/Gemini 到浏览器搜索引擎 在使用 ChatGPT/Grok/Gemini 进行对话时,每次都需要先打开对应的网页࿰…...
golang-struct结构体
struct结构体 概述 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是 Golang 中一种复合类型,它是由一组具有相同或不同类型的数据字段组成的数据结构。 结构体是一种用户自定义类型,它可…...
矫平机:工业制造的“误差归零者”,如何重塑智造新生态?
在新能源汽车电池托盘的生产线上,一块2米长的铝合金板材因焊接应力产生了0.5毫米的隐形翘曲。这个看似微不足道的变形,却导致激光焊接工序的良率暴跌至65%。当工程师们尝试传统矫正方案时,发现高强度铝合金既不能加热校形,又无法承…...
Springboot中的@ConditionalOnBean注解:使用指南与最佳实践
在使用Spring Boot进行开发时,大家应该都听说过条件注解(Conditional Annotations)。其中的ConditionalOnBean注解就很有趣,它帮助开发者在特定条件下创建和注入Bean,让你的应用更加灵活。今天就来聊聊这个注解的使用场…...
Spring 中 BeanFactoryPostProcessor 的作用和示例
一、概览 1. 核心定位 BeanFactoryPostProcessor 是 Spring 容器级别的扩展接口,在 Bean 实例化之前,对 Bean 的配置元数据(即 BeanDefinition)进行动态修改或扩展。其核心功能围绕以下两点: 修改现有 Bean 的定义&…...
PDFMathTranslate 安装、使用及接入deepseek
PDFMathTranslate 安装、使用及接入deepseek 介绍安装及使用接入deepseek注意 介绍 PDFMathTranslate 是非常好用的科学 PDF 文档翻译及双语对照工具,可以将论文按照其原本的排版结构执行多种语言翻译,并且可以接入如:谷歌翻译、deepl、deep…...
Docker生存手册:安装到服务一本通
文章目录 一. Docker 容器介绍1.1 什么是Docker容器?1.2 为什么需要Docker容器?1.3 Docker架构1.4 Docker 相关概念1.5 Docker特点 二. Docker 安装2.1 查看Linux内核版本2.2 卸载老版本docker,避免产生影响2.3 升级yum 和配置源2.4 安装Dock…...
JAVA中关于图形化界面的学习(GUI)动作监听,鼠标监听,键盘监听
动作监听: 先创建一个图形化界面,接着创建一个按钮对象,设置按钮的大小。 添加一个addActionListener(); addActionListener() 方法定义在 java.awt.event.ActionListener 接口相关的上下文中,许多支持用户交互产生…...
wepy微信小程序自定义底部弹出框功能,显示与隐藏效果(淡入淡出,滑入滑出)
视图html部分 <view class"salePz"><view class"btnSelPz" tap"pzModelClick">去选择</view><!-- modal --><view class"modal modal-bottom-dialog" hidden"{{hideFlag}}"><view class&q…...
Api架构设计--- HTTP + RESTful
Api架构设计--- HTTP RESTful 什么是RESTfulRESTful 设计原则RESTful 接口类型RESTful 状态码RESTful Uri设计原则Api传参:QueryString 和 UriPath RESTful和HTTP的区别注意事项 什么是RESTful RESTful(Representational State Transfer)是一…...
设计模式-适配器模式
适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端期望的另一个接口,使得原本不兼容的类可以协同工作。它的核心思想是通过中间层(适配器)解决接口不匹配的问题,类似于电源插头转换器。 核心思想 适配…...
MacBook部署达梦V8手记
背景 使用Java SpringBootDM开发Web应用,框架有License,OSX加载dll失败,安装了Windows 11,只有一个C盘,达梦安装后因为C盘权限问题,创建数据库失败,遂采用Docker容器方式部署。 下载介质 官网在…...
MySQL程序
博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. mysqld (MySQL服务器) mysqld也被称为MySQL服务器,是⼀个多线程程序,对数据⽬录进⾏访问管理(包含数据库…...
APB-清华联合腾讯等机构推出的分布式长上下文推理框架
APB (Accelerating Distributed Long-Context Inference by Passing Compressed Context Blocks acrossGPUs)是清华大学等机构联合提出的分布式长上下文推理框架。通过稀疏注意力机制和序列并行推理方式,有效解决了大模型处理长文本时的效率瓶颈。APB采用更小的Anch…...
python爬虫笔记(一)
文章目录 html基础标签和下划线无序列表和有序列表表格加边框 html的属性a标签(网站)target属性换行线和水平分割线 图片设置宽高width,height html区块——块元素与行内元素块元素与行内元素块元素举例行内元素举例 表单from标签type属性pla…...
Pycharm接入DeepSeek,提升自动化脚本的写作效率
一.效果展示: 二.实施步骤: 1.DeepSeek官网创建API key: 创建成功后,会生成一个API key: 2. PyCharm工具,打开文件->设置->插件,搜索“Continue”,点击安装 3.安装完成后&…...
spring boot 过滤器简单demo
1. 过滤器(Filter)的概念 过滤器是 Java Web 应用中的一种组件,它可以在请求到达目标资源(如 Controller)之前或响应返回客户端之后,对请求和响应进行统一处理。它的核心作用是对 HTTP 请求和响应进行拦截…...
3.8 Spring Boot监控:Actuator+Prometheus+Grafana可视化
在Spring Boot应用中,通过整合Actuator、Prometheus和Grafana可以构建完整的监控体系,实现指标采集、存储和可视化。以下是具体实现步骤: 一、Spring Boot Actuator 配置 作用:暴露应用健康指标、性能数据等监控端点。 1. 添加依…...
C++中的单例模式及具体应用示例
AI 摘要 本文深入探讨了C中的单例模式及其在机器人自主导航中的应用,特别是如何通过单例模式来管理地图数据。文章详细介绍了单例模式的基本结构、优缺点以及在多线程环境中的应用,强调了其在保证数据一致性和资源管理中的重要性。 接着,文章…...
网络编程——套接字、创建服务器、创建客户端
一、套接字 1.1什么是套接字 套接字文件,原本就是一个和管道文件类似,用来实现进程间通信的一个文件 既然有了管道文件,当时为什么还要开发套接字文件,去实现进程的通信 因为管道文件是半双工模式的 套接字文件是全双工模式的…...
【设计模式】3W 学习法深入剖析创建型模式:原理、实战与开源框架应用(含 Java 代码)
3W 学习法总结创建型模式(附 Java 代码实战及开源框架应用) 创建型模式主要关注 对象的创建,旨在提高代码的可复用性、可扩展性和灵活性。本文采用 3W 学习法(What、Why、How),深入分析 五大创建型模式&am…...
软考系统架构师考试目录(2023新版)
论文 2023下半年 开发:论面向对象设计的应用与实现大数据:论多数据源集成的应用与实现测试:论软件可靠性评价的设计与实现运维:论边云协同的设计与实现 2024上半年 大数据:Lambda架构,分层批处理层、加…...
Apifox Helper 自动生成API接口文档
在我们开发过程中我们在编写请求地址和编写请求参数的时候特别花费时间耗费了我们很多时间,作为一个程序员,更应该把精力时间集中在开发上, Apifox Helper 是 Apifox 团队针对 IntelliJ IDEA 环境所推出的插件,可以在 IDEA 环境中…...
MySQL开发陷阱与最佳实践:第1章:MySQL开发基础概述-1.1 MySQL简介与应用场景
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 MySQL开发陷阱与最佳实践:第1章:MySQL开发基础概述-1.1 MySQL简介与应用场景1.1.1 MySQL的发展历程与市场地位1.1.2 MySQL的核心特性与技术优势1.1.2…...
电鱼智能EFISH-RK3576-SBC工控板已适配Android 14系统
EFISH-RK3576-SBC工控板此前已提供了Linux 6.1.57系统,为了满足更多客户的需求,电鱼智能近日又为其成功适配了Android 14系统——硬件性能卓越的核心板与Android 14的深度组合,将为用户带来更加流畅、开放、智能的使用体验。 一、高性能处理器…...
C++ 语法之函数和函数指针
在上一章中 C 语法之 指针的一些应用说明-CSDN博客 我们了解了指针变量,int *p;取变量a的地址这些。 那么函数同样也有个地址,直接输出函数名就可以得到地址,如下: #include<iostream> using namespace std; void fun() …...
LabVIEW生成EXE文件错误提示
在LabVIEW生成EXE时弹出 “The build is missing one or more source files or items the source files reference on disk”,表明项目中引用的某些文件(如VI、子模块、依赖库或配置文件)未被正确包含或路径丢失。以下是具体原因及解决方案&a…...
HTML,CSS,JavaScript
HTML:负责网页的结构(页面元素和内容)。 CSS:负责网页的表现(页面元素的外观、位置等页面样式,如:颜色、大小等)。 Javascript:负责网页的行为(交互效果)。 MDN前端开发文档(MDN Web Docs) HTML HTML(HyperText Markup Language):超文本标记语言超文本:超越了文本的…...