第十四届蓝桥杯省赛真题解析(含C++详细源码)
第十四届蓝桥杯省赛
- 整数删除
- 满分思路及代码
- solution1 (40% 双指针暴力枚举)
- solution 2(优先队列+模拟链表 AC)
- 冶炼金属
- 满分代码及思路
- 子串简写
- 满分思路及代码
- solution 1(60% 双指针)
- solution 2(二分 AC)
- 岛屿个数
- 满分代码及思路
- 飞机降落
- 满分思路及代码
- 接龙数列
- 满分思路及代码
整数删除
题目链接
满分思路及代码
solution1 (40% 双指针暴力枚举)
#include <iostream>
using namespace std;
const int N=5e5+10;
int n,k;
int a[N];
int main()
{cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];}//实际上我们并不能通过简单的排序来找到数列中最小的整数//因为这样会失去原来的相对位置 而导致删去后的增加操作出错//所以我们可以用双指针的思路来写while(k--){int l=1;int r=n;while(l!=r){if(a[l]<=a[r]){r--;}else{l++;}}//遍历整个数组寻找最小值if(l==1){a[l+1]+=a[l];}else if(l==n){a[l-1]+=a[l];}else{a[l+1]+=a[l];a[l-1]+=a[l];}//删除 覆盖掉for(int i=l;i<=n;i++){a[i]=a[i+1];}n--;
}for(int i=1;i<=n;i++){cout<<a[i]<<' ';}return 0;
}
solution 2(优先队列+模拟链表 AC)
思路参考:
#include <bits/stdc++.h>
using namespace std;
// 记录每个位置的数是否被删除过
bool removed[500005];
// 数据过大,爆int
#define ll long long
int main()
{int n, k;cin >> n >> k;// 数列,数和左右相邻的数的距离vector<pair<ll, pair<int, int>>> a(n);// 优先队列,数和下标priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> p;int t;for (int i = 0; i < n; i++){cin >> t;// 相邻的数初始距离为1a[i] = {t, {1, 1}};// 数和下标压入堆p.push({t, i});}//查找k次while (k){// 弹出第一个数pair<ll, int> tp = p.top();p.pop();ll value = tp.first;int index = tp.second;// 如果已经被删除过,或者被修改过,则跳过,否则删除if (removed[index] || a[index].first != value)continue;// 标记为已删除removed[index] = true;// 左右最近未被删除节点到自己的距离int l = index - a[index].second.first;int r = index + a[index].second.second;// 如果左边相邻的数存在则更新if (l >= 0 && !removed[l]){// 更新左边的数并压入堆a[l].first += value;p.push({a[l].first, l});// 如果右边的数存在,则更新左边的数到右边的距离if (r < n && !removed[r]){a[l].second.second += a[index].second.second;}}// 如果右边相邻的数存在则更新if (r < n && !removed[r]){// 更新右边的数并压入堆a[r].first += value;p.push({a[r].first, r});// 如果左边的数存在,则更新右边的数到左边的距离if (l >= 0 && !removed[l]){a[r].second.first += a[index].second.first;}}k--;}// 输出还未被删除的数for (int i = 0; i < n; i++){if (!removed[i])cout << a[i].first << " ";}return 0;
}
冶炼金属
满分代码及思路
//对于这个v的范围我们怎么来确定呢
//我觉得是这样的 例如投入75个O产出3个X
//如果最好的情况即浪费的最少得时候 即V=25 当然也有小数的情况 但也就是直接相除之后向下取整就好 最后对于每一次冶炼的V取max
//最坏的情况需要考虑 还是拿上面的举例 我们可以从产出4个X所需要的V枚举到3 最后取min 但是注意此时就需要向上取整即加1;
//因为我们是在找不符合75个出3个X的临界点 即多少O出4个X
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N],b[N];
int n;
int maxval=1e9;
int minval=0;
int main()
{cin>> n;for(int i=0;i<n;i++){cin>>a[i]>>b[i];}for(int i=0;i<n;i++){maxval=min(a[i]/b[i],maxval);minval=max(a[i]/(b[i]+1)+1,minval);}cout<<minval<<' '<<maxval;return 0;
}
子串简写
题目链接
满分思路及代码
solution 1(60% 双指针)
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>using namespace std;// 双指针方法
int TwoPointers(int K, const string& S, char c1, char c2) {int n = S.length();int count = 0;for (int left = 0; left < n; ++left) {if (S[left] == c1) {for (int right = left + K - 1; right < n; ++right) {if (S[right] == c2) {++count;}}}}return count;
}
//首先暴力的思路类似于双指针
//三种情况
//我们用p指针找到C1 保持c1不动移动指针q 让q不断去找c2 直到满足我们的长度我们的res++
//然后q走到最后一个c2了之后移动p 规则一样
//p q一起动
//
int main() {int K;string S;char c1, c2;// 读取输入cin >> K;cin >> S >> c1 >> c2;// 计算结果int result=TwoPointers(K, S, c1, c2);cout << result << endl;return 0;
}
solution 2(二分 AC)
#include<iostream>
#include<algorithm>
using namespace std;
int nec1[500100];
int c1dx = 0;
int c2dx = 0;
int nec2[500100];
int main()
{int k;cin >> k;string str;cin >> str;str = "1" + str;char c1, c2;cin >> c1 >> c2;for (int i = 1; i < str.length(); i++) {//记录c1字符所有出现的位置if (str[i] == c1) {nec1[c1dx] = i;c1dx++;}//记录c2字符所有出现位置if (str[i] == c2) {nec2[c2dx] = i;c2dx++;}}long long ans = 0;//枚举c1字符出现的位置for (int i = 0; i < c1dx; i++) {//二分查找c2字符出现的位置的合法位置auto dx = lower_bound(nec2, nec2 + c2dx, nec1[i] + k-1);//没有找到情况if (dx == nec2 + c2dx)continue;//找到了int t = dx - nec2;//加上总合法个数ans += c2dx - t;}cout << ans << endl;return 0;
}
岛屿个数
题目链接
满分代码及思路
在我之前的文章 搜索系列 里面可以找到详细分析
#include <bits/stdc++.h>
using namespace std;
const int X = 50 + 10;
typedef pair<int, int> PII;
int grid[X][X]; // 使用 int 类型数组
int n, m, T;
int ans;
int s[X];
// 海的移动偏移量数组
int dx[8] = {-1,-1,-1,0,1,1,1,0};
int dy[8] = {-1,0,1,1,1,0,-1,-1};
// 陆地的移动偏移量
int DX[4] = {-1, 0, 1, 0};
int DY[4] = {0, 1, 0, -1};
bool st_land[X][X];
bool st_sea[X][X];bool check(int x, int y) {if (x < n && x >= 0 && y < m && y >= 0) {return true;}return false;
}// 找到了(x,y)所在的岛屿 并将该岛屿的所有点都标为了 true
void bfs_land(int u, int v) {queue<PII> Q;st_land[u][v] = true;PII tp = {u, v};Q.push(tp);while (!Q.empty()) {PII t = Q.front();Q.pop();for (int i = 0; i < 4; i++) {int nu = t.first + DX[i];int nv = t.second + DY[i];if (check(nu, nv) && grid[nu][nv] == 1 && !st_land[nu][nv]) {st_land[nu][nv] = true;Q.push({nu, nv});}}}
}void bfs_sea(int x, int y) {queue<PII> q;PII tmp = {x, y};q.push(tmp);st_sea[x][y] = true;while (!q.empty()) {PII p = q.front();q.pop();for (int i = 0; i < 8; i++) { // 枚举一下海的方向 int nx = p.first + dx[i];int ny = p.second + dy[i];if (!check(nx, ny) || st_sea[nx][ny]) {continue;}if (grid[nx][ny] == 0) {st_sea[nx][ny] = true;q.push({nx, ny});} else if (grid[nx][ny] == 1 && !st_land[nx][ny]) {ans++;bfs_land(nx, ny); // 如果发现寻找外海的过程中发现了陆地 说明属于新的外岛那么需要找到与他相连的全部陆地}}}
}int main() {cin >> T;while (T--) {cin >> n >> m;ans = 0; // 每次都需要重置一下for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {st_sea[i][j] = st_land[i][j] = false;}}for (int i = 0; i < n; i++) {string s;cin >> s;for (int j = 0; j < m; j++) {grid[i][j] = s[j] - '0'; // 将字符转化成数字存进去}}bool has_sea = false;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {if (!st_sea[i][j] && grid[i][j] == 0) { // 当前的这个点是海并且是没有被标记过has_sea = true;bfs_sea(i, j);}}}}// 判断全是陆地的特例(只有一个大岛)if (!has_sea) {ans = 1;}cout << ans << endl;}return 0;
}
飞机降落
题目链接
满分思路及代码
思路直接去看我之前的文章就好:搜索系列
非常详细具体
视频讲解:非常牛逼
#include <bits/stdc++.h>
using namespace std;
const int N =10+9;//防止越界
int n;//有多少架飞机
//int T,D,L;//分别表示降落时刻,能盘旋的时间,降落的时间
//考虑到这题这三个数据可以代表一架飞机的属性 可以考虑采用结构体来实现struct plane{
int t;
int d;
int l;
}p[N];
bool s[N];//每架飞机的状态
//我们需要知道几架飞机成功降落 和前一架飞机降落的时间
bool dfs(int x,int time)
{if(x>=n){return true;}//递归出口//枚举每种降落顺序for(int i=0;i<n;i++){if(!s[i])//这架飞机没有安排过{s[i]=true;if(p[i].t+p[i].d<time)//燃尽了也没等到前一架飞机降落完毕{//回溯s[i]=false;return false;}int next=max(p[i].t,time)+p[i].l;//核心 两种情况的综合//即一来就可以落 和 需要等前一架降落完毕再落if(dfs(x+1,next)){return true;//后续的飞机都可以顺利降落}s[i]=false;}}return false;//所有降落方案都不能成功降落;}
int main()
{int T;//测试的组数cin>>T;while(T--){cin>>n;for(int i=0;i<n;i++){cin>>p[i].t>>p[i].d>>p[i].l;}if(dfs(0,0)){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}for(int i=0;i<n;i++){s[i]=false;}}return 0;}
接龙数列
题目链接
满分思路及代码
其实我们需要转化题目所问的问题
题目问的是 最少需要删除几个字符或者说数字 等价于求数列最长是多少 ——最长子序列问题
思路参考:视频讲解
#include <iostream>
using namespace std;
const int N = 1e5;
int a[N]; //也可以使用vector,但在效率上会有损失
int dp[10];//全局变量,全部默认初始化为0
int main()
{
int n;
cin >> n;
for (int i = 0;i < n;i++)
{
cin >> a[i];
}
//拆分每一个数,取出首位数字和末位数字
int front, tail;
for (int i = 0;i < n;i++)
{
int cur = a[i];
tail =cur % 10;
front =tail;
while (cur)
{
front = cur%10;
cur= cur / 10;
}
dp[tail] = dp[tail] > dp[front] + 1 ? dp[tail] : dp[front ]+ 1;
}
//找最大的dp数组元素值
int maxLen = 0;
for (int i = 0;i < 10;i++)
{
if (dp[i] > maxLen)
maxLen = dp[i];
}
cout << n - maxLen << endl;
return 0;
}
相关文章:
第十四届蓝桥杯省赛真题解析(含C++详细源码)
第十四届蓝桥杯省赛 整数删除满分思路及代码solution1 (40% 双指针暴力枚举)solution 2(优先队列模拟链表 AC) 冶炼金属满分代码及思路 子串简写满分思路及代码solution 1(60% 双指针)solution 2࿰…...
整车CAN网络和CANoe
车载网络中主要包含有Can网络,Lin网络,FlexRay,Most,以太网。 500kbps:500波特率,表示的数据传输的速度。表示的是最大的网速传输速度。也就是每秒 500kb BodyCan车身Can InfoCan娱乐信息Can 车身CAN主要连接的是ESB电动安全带 ADB自适应远光灯等 PTCan动力Can 底盘Can...
从扩展黎曼泽塔函数构造物质和时空的结构-16
都是一样的泽塔函数,却呈现出不同的性质,而不同的性质无关于自然数还是质数,完全是由s来决定的。可以猜想, 就是光子,而如果, 就是物质粒子。其中不同的k指出不同的周期或者对应于不同的质数p,虽…...
【C++】list模拟实现
📝前言: 这篇文章我们来讲讲STL中list的模拟实现: 🎬个人简介:努力学习ing 📋个人专栏:C学习笔记 🎀CSDN主页 愚润求学 🌄其他专栏:C语言入门基础,…...
人脸专注度检测系统(课堂专注度检测、人脸检测、注意力检测系统)
人脸专注度检测系统 项目介绍 本项目是基于Flask、MobileNetV2、Mediapipe的人脸专注度检测系统。 项目采用tensorflow.keras库内置的MobileNetV2预训练模型,对自主采集的少量人脸图片数据迁移训练而得到最终的人脸专注度检测模型。 项目采用前后端分离的技术框架…...
文件操作和IO ——Java
初识文件 首先文件分为: 1.狭义的文件 – 保存在硬盘上的文件。 2.广义的文件 – 操作系统进行资源管理的一种机制。很多的软件/硬件资源,抽象成“文件”来进行表示。 (println > 控制台,scanner > 控制台的标准输入&#…...
dmsetup 清理ceph osd残留磁盘分区
在物理机上接入磁盘并准备格式化时,发现磁盘中存在之前残留的 Ceph OSD 分区。尝试运用 fdisk 重新分区、重新格式化,以及使用 sgdisk 格式化,甚至重写磁盘头,都未能成功清理掉这些 OSD 残留分区。最终,借助 dmsetup 直…...
每日一题(小白)字符串娱乐篇16
分析题意可以了解到本题要求在一串字符串中找到所有组合起来排序递增的字符串。我们可以默认所有字符在字符串中的上升序列是1,从第一个字符开始找,如果后面的字符大于前面的字符就说明这是一个上序列那么后面字符所在的数组加一,如果连接不上…...
【Mac 从 0 到 1 保姆级配置教程 11】- Mac 基础配置 Finder、触控板、常用快捷键等
文章目录 前言配置 Finder1. 把我们的家目录请出来2. 显示文件扩展名3. 展示隐藏文件4. 显示路径栏和状态栏5. 固定文件夹到工具栏 基础快捷键1. Finder 导航快捷键2. 文件操作快捷键3. 视图和显示快捷键4. 搜索和选择快捷键5. 实用技巧6. 关于文件创建 配置触控板1. 右键设置2…...
Redis 渐进式rehash怎么判定rehash完成了?
Redis 渐进式 Rehash 的完成判断机制 在 Redis 的字典(dict)结构扩容或缩容时,会使用 渐进式 Rehash 来避免一次性迁移所有键值对导致的阻塞。以下是判断旧哈希表(ht[0])是否全部迁移完毕的核心逻辑: 1. 渐进式 Rehash 的核心流程 Redis 的字典结构包含两个哈希表: t…...
Redis的常用数据结构
三. Redis 的常用数据结构 (redis提供的查询功能, 不像mysql这么强大) 1. 认识数据类型和编码方式 常见数据结构 (数据类型) : string (字符串), list (列表), hash (哈希), set (集合), zset (有序集合). Redis 底层在实现上述数据结构的时候, 会在源码层面进行优化, 来达到…...
c++中的虚函数
在C中,虚函数(Virtual Function)是一种实现多态的重要机制,它允许在派生类中重写基类的函数,从而在运行时根据对象的实际类型调用相应的函数版本。 1. 虚函数的定义 虚函数是在基类中使用关键字virtual声明的函数。例…...
unreal engine5开发仿鬼泣5的游戏,把敌人击飞到空中4连击
UE5系列文章目录 文章目录 UE5系列文章目录前言一、实现思路二、具体蓝图 前言 unreal engine5开发仿鬼泣5的游戏,把敌人击飞到空中4连击,先看下效果 一、实现思路 unreal engine5开发仿鬼泣5的游戏,把敌人击飞到空中4连击 在Unreal Engi…...
蓝桥杯嵌入式第十四届模拟二(PWM、USART)
一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.c、fun.h、headfile.h文件,去资源包中把lc…...
深挖 TypeScript 基础数据类型:应用与陷阱
在 TypeScript 的学习与实践过程中,对基础数据类型的深入理解和正确运用,是写出高质量代码的关键。本篇文章会通过探讨数据类型在实际场景中的应用,分析常见错误,帮助大家提升运用 TypeScript 基础数据类型的能力。 一、函数参…...
B站视频教材: Yocto项目实战教程 第一章 PPT讲解
B站视频链接,请多多关注本人B站: 📌 Yocto项目实战教程:第一章 视频讲解 在当今嵌入式系统快速发展的背景下,越来越多的设备和行业依赖于高效、可定制、可维护的操作系统解决方案。嵌入式Linux系统,凭借其开源灵活性和…...
嵌入式软件开发调试方法
文章目录 1. 利于函数返回值,retrurn 定位错误位置2. 合理使用逻辑分析仪(正点原子 厉害!!) 1. 利于函数返回值,retrurn 定位错误位置 如下图所示,设置不同的返回值,0是ok的,其他值均为失败&…...
Sentinel核心源码分析(上)
文章目录 前言一、客户端与Spring Boot整合二、SphU.entry2.1、构建责任链2.2、调用责任链2.2.1、NodeSelectorSlot2.2.2、ClusterBuilderSlot2.2.3、LogSlot2.2.4、StatisticSlot2.2.5、AuthoritySlot2.2.6、SystemSlot2.2.7、FlowSlot2.2.7.1、selectNodeByRequesterAndStrat…...
TCPIP详解 卷1协议 一 概述
相关概念 协议族:一系列相关协议的集合称为一个协议族体系结构:指定一个协议族中的各种协议之间的相互关系并划分需要完成的任务的设计,称为协议族的体系结构。分组交换:数据被分割为固定或可变长度的分组 ,每个分组包…...
条件生成对抗网络(Conditional GAN, CGAN)原理及实现(pytorch版)
CGAN 原理及实现 一、CGAN 原理1.1 基本概念1.2 与传统GAN的区别1.3 目标函数1.4 损失函数1.5 条件信息的融合方式1.6 与其他GAN变体的对比1.7 CGAN的应用1.8 改进与变体二、CGAN 实现2.1 导包2.2 数据加载和处理2.3 构建生成器2.4 构建判别器2.5 训练和保存模型2.6 绘制训练损…...
类与对象(上)
【本节目标】 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,…...
MySQL基础 [三] - 数据类型
目录 数据类型分类 编辑 数值类型 tinyint bit 浮点类型 float decimal 字符串类型 char varchar varchar和char的比较和选择 日期和时间类型 enum和set enum类型 set类型 enum和set的类型查找 数据类型分类 数值类型 tinyint TINYINT[(M)] [UNSIGNED]是 …...
1.1 测试计划阶段:如何制定高效的测试策略
测试计划阶段:如何制定高效的测试策略 摘要 本文详细介绍了软件测试流程中的测试计划阶段,包括测试策略制定、资源规划、进度安排和风险管理等内容。通过本文,读者可以系统性地了解如何制定有效的测试计划,确保测试工作有序进行…...
Spring 概念
Spring 是一个功能强大、灵活且广泛使用的 Java 企业级开发框架,它诞生于 2003 年,由 Rod Johnson 创建,初衷是简化 Java EE 的开发过程。 一、Spring 是什么? 简单来说: Spring 是一个轻量级的 Java 开发框架&#…...
animals_classification动物分类
数据获取 深度学习训练中第一个是获取数据集,数据集的质量很重要,我们这里做的是动物分类,大致会选择几个动物,来做一个简单的多分类问题,数据获取的方法,鼠鼠我这里选择使用爬虫的方式来对数据进行爬取&a…...
15.QT窗口:主窗口、浮动窗口、对话框
0. 概述 Qt窗口是通过 QMainWindow类 来实现的。 QMainWindow 是一个为用户提供主窗口程序的类,继承自QWidget类,并且提供了一个预定义的布局。QMainWindow包含一个菜单栏(menu bar)、多个工具栏(tool barsÿ…...
nginx中地理位置访问控制模块geo
1.安装 GeoIP2 模块 Ubuntu/Debian 系统: sudo apt-get update sudo apt-get install nginx-module-geoip2 sudo apt-get install libnginx-mod-http-geoip2CentOS/RHEL 系统: sudo yum install nginx-module-geoip22.下载 GeoIP2 数据库 下载 GeoIP2 …...
基于SpringBoot酒店管理系统设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
蓝桥杯嵌入式第十四届模拟二
一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.c、fun.h、headfile.h文件,去资源包中把lc…...
【前端】Node.js一本通
近两天更新完毕,建议关注收藏点赞。 目录 复习Node.js概述使用fs文件系统模块path路径模块http模块模块化 复习 为什么JS可以在浏览器中执行 原理:待执行的JS代码->JS解析引擎 不同的浏览器使用不同的 JavaScript 解析引擎:其中…...
Groovy
一:了解 1:groovy保留字 2: 标识符 二:数据类型 1:字符串(1) 1: java.lang.string 定义的字符串是不能改变的 2: groovy.lang.GString 定义的字符串的值是不能改变的 2: 总结 三:数值类型 1: Groovy的数值型包括整数型(integer)…...
【并发编程 | 第七篇】深入学习线程池(一)
什么是线程池? 线程池是用来管理和复用线程的⼯具,它可以减少线程的创建和销毁开销。 在 Java 中,ThreadPoolExecutor 是线程池的核⼼实现,它通过核⼼线程数、最⼤线程数、任务队列和拒绝策略来 控制线程的创建和执⾏。 举个栗…...
C++ 获取一整行(一行)字符串并转换为数字
代码很简单,主要是自己总是忘记,记录一下: #include <iostream> #include <cstdlib> #include <cstring>#include <string> #include <vector> #include <sstream>using namespace std;void print_int_…...
初探:简道云平台架构及原理
一、系统架构概述 简道云作为一款低代码开发平台,其架构设计以模块化和云端协同为核心,主要分为以下层次: 1. 前端层 可视化界面:基于Web的拖拽式表单设计器,支持动态渲染(React/Vue框架)。多…...
鸿蒙Arkts开发飞机大战小游戏,包含无敌模式,自动射弹,暂停和继续
飞机大战可以把飞机改成图片,目前包含无敌模式,自动射弹,暂停和继续的功能 代码如下: // 定义位置类 class GamePosition {x: numbery: numberconstructor(x: number, y: number) {this.x xthis.y y} }Entry Component struct…...
使用`sklearn`中的逻辑回归模型进行股票的情感分析,以及按日期统计积极和消极评论数量的功能
以下是完成上述任务的Python代码,可在Jupyter Notebook中运行。此代码包含了使用sklearn中的逻辑回归模型进行情感分析,以及按日期统计积极和消极评论数量的功能。 import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f…...
简洁的 PlantUML 入门教程
评论中太多朋友在问,我的文章中图例如何完成的。 我一直用plantUML,也推荐大家用,下面给出一个简洁的PlantUML教程。 🌱 什么是 PlantUML? PlantUML 是一个用纯文本语言画图的工具,支持流程图、时序图、用例图、类图、…...
Python 面向对象 - 依赖倒置原则 (DIP)
1. 核心概念 依赖倒置原则(Dependency Inversion Principle, DIP) 是SOLID原则中的"D",包含两个关键点: 高层模块不应依赖低层模块,二者都应依赖抽象抽象不应依赖细节,细节应依赖抽象 2. 使用场景 典型应用场景 系…...
自动化框架及其设计搭建浅谈(二)--分层自动化测试
目录 测试金字塔模型 分层自动化测试的模型 分层自动化测试的最佳实践 自动化分层测试的误区 自动化框架的设计与自动化分层 自动化测试的设计建议 分层自动化测试,顾名思义,就是分层的自动化测试,那么自动化测试为什么要分层呢&#x…...
ResNet改进(19):基于PyTorch的ResNet改进方案详解:Mish激活+SPP模块+MixUp数据增强
1. 前言 ResNet作为深度学习领域里程碑式的网络架构,在图像分类等计算机视觉任务中表现出色。然而,随着研究的深入和技术的发展,原始的ResNet架构仍有改进空间。本文将详细介绍一种基于PyTorch的ResNet改进方案,该方案融合了Mish激活函数、SPP模块和MixUp数据增强等先进技…...
设计模式简述(九)命令模式
命令模式 描述基本使用使用 描述 命令模式是一种体现高内聚的行为模式。 将整个请求封装成一个命令对象,由这个命令对象完成所需业务调用。 命令对象封装了该命令需要的所有逻辑,不需要调用方关注内部细节。 基本使用 定义抽象命令(所有命…...
Codecademy—— 交互式编程学习的乐园
一、网站概述 Codecademy 是一家美国在线学习编程知识的网站,它为编程学习者提供了一种全新的学习方式。在如今众多的编程学习平台中,Codecademy 凭借其独特的优势脱颖而出,吸引了全球数百万用户。其目标是帮助更多人轻松学习编程࿰…...
分布式数据库HBase
1.概述 1.1从BigTable 说起 BigTable是一个分布式存储系统,BigTable起初用于解决典型的互联网搜索问题。 BigTable是一个分布式存储系统利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据使用谷歌分布式文件系统GFS作为底层数据存储采用Chubby提供协同服…...
Linux进程地址空间(12)
文章目录 前言一、进程空间地址基本概念代码分析 二、如何理解地址空间三、进一步理解页表和写实拷贝对虚拟地址的进一步深入fork() 的两个返回值? 总结 前言 融会贯通! 本篇会让你再次对计算机世界里面的大智慧感到汗颜! 本篇研究环境基…...
鸿蒙开发04界面渲染
文章目录 前言一、条件渲染1.1 if/else1.2 属性控制1.3 可见性 二、循环渲染三、滚动渲染3.1 下拉刷新3.2 上拉加载 前言 在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条…...
CANoe CAPL——Ethernet CAPL函数
CANoe CAPL——CAN CAPL函数 事件过程(Event Procedures) 函数名简要描述on ethernetErrorPacket收到错误的以太网数据包时调用。on ethernetMacsecStatus当物理端口的以太网 MACsec 连接状态变化时调用。on ethernetPacket接收到以太网数据包后调用。…...
语法: setup_lcd (mode, prescale, [segments]);
SETUP_LCD( ) 语法: setup_lcd (mode, prescale, [segments]); 参数: mode可能是来自devices.h头文件如下常数: LCD_DISABLED, LCD_STATIC, LCD_MUX12, LCD_MUX13, LCD_MUX14 下面的参数:STOP_ON_SLEEP, USE_TIMER_1可同上面的LCD_DISABLED, LCD_STATIC, LCD_MUX12, LCD…...
微前端随笔
✨ single-spa: js-entry 通过es-module 或 umd 动态插入 js 脚本 ,在主应用中发送请求,来获取子应用的包, 该子应用的包 singleSpa.registerApplication({name: app1,app: () > import(http://localhost:8080/app1.js),active…...
实操(不可重入函数、volatile、SIGCHLD、线程)Linux
1 不可重入函数 为什么会导致节点丢失内存泄露?main函数在执行insert,但是没执行完就被信号中断了,又进了这个函数里,所以这个insert函数在不同的执行流中,同一个函数被重复进入,如果没有问题,…...
如何在Linux系统上通过命令调用AI大模型?
如何在Linux系统上通过命令调用AI大模型? 文章目录 如何在Linux系统上通过命令调用AI大模型?一、准备工作二、编写API调用脚本三、配置命令行工具 使用AI命令帮我做一个文档总结提问技术问题编写简单的shell脚本帮我写一个docker-compose 在这个AI技术飞…...