当前位置: 首页 > news >正文

算法基础篇(1)(蓝桥杯常考点)

算法基础篇

前言

算法内容还有搜索,数据结构(进阶),动态规划和图论
数学那个的话大家也知道比较难,放在最后讲
这期包含的内容可以看目录
模拟那个算法的话就是题说什么写什么,就不再分入目录中了

注意事项:

1.多组测试时,一定要考虑需不需要清空数据

一般是能覆盖的话(没覆盖的部分不用就行了)不清空或者还能用就不清空

(权衡时间复杂度,清空是用时间换空间)

2.int类型的无穷大可以搞为 int inf = 0x3f3f3f3f

1.高精度

当数据的值特别大,各种类型都存不下的时候,要用高精度算法来加减乘除

步骤:

1.先用字符串读入这个数,然后用数组逆序存储该数的每一位

2.利用数组,模拟加减乘除运算的过程

高精度加法:(c= a+b,其字符串存在c[],a[],b[]中)例题:洛谷的 [P1601 A+B Problem(⾼精)]
la,lb是a,b的字符串长度
lc = max(la,lb)
for(int i = 0;i<lc;i++)
{c[i]=a[i]+b[i];//对应位相加c[i+1]=c[i]/10;//处理进位c[i]%=10;//处理余数
}
if(c[lc])lc++;//易忘,来让lc为c字符串的长度
这里字符串的长度不用数组求
读的时候先读成string,再用size()求字符串长度,最后for循环读到数组里(逆序存储)
高精度减法:(z = x - y)存储在z[],x[],y[](逆序存储)
例题: 洛谷P2142 ⾼精度减法
要让大的数减小的数才行(判断方法如下:)
1.位数不等,按照字符串的长度比较
2.位数相等,用字典序比较
bool cmp(string&x,string&y)
{
if(x.size()!=y.size()) return x.size()<y.size();//比长度return x<y//比字典序}if(cmp(x,y))
{swap(x,y);cout<<'-'; }高精度减法过程:(x大于y才行)
lz=max(lx,ly);for(int i = 0;i<lz;i++)z[i]+=x[i]-y[i];if(z[i]<0)
{z[i+1]-=1;//借位z[i]+=10;}
while(lz>1&&z[lz-1]==0)lz--;//处理前导0
高精度乘法:(c = a*b)(也要逆序存储)
例题:洛谷  P1303 A*B Problem
lc = la+lb
//无进位相乘
for(int i =0;i<la,i++)
{for(int j = 0,j<lb,j++){c[i+j] = a[i]*b[j];} }
//处理进位
for(int i = 0;i<lc,i++)
{c[i+1]+=c[i]/10;c[i]%=10;}
//处理前导0
while(lc>1&&c[lc-1]==0)lc--;
(高精度除低精度)
(数组也是逆着存的,即个位在a[0])
高精度除法(这个模板是正数的,并且数组不用逆序存储)(c=a/b)(0<b<10的9次方)
(如果要解决负数的,就先判断是不是就一个负数,是就打印个-,之后转换为此做)long long t = 0;//标记每次除完之后的余数
for(int i = la-1;i>=0;i--)
{
//计算当前的被除数t = t*10+a[i];c[i]=t/b;t%=b; }
//处理前导0
while(lc>1&&c[lc-1]==0)lc--;

2.枚举和二进制枚举

枚举其实就是暴力求解

使用时一般都会超时,此时要先根据题目的数据范围来判断暴力枚举能不能通过

不能的话就要使用后面的各种算法去优化(比如二分这些),还有就是寻找题目的各种性质去简化题目(eg:洛谷 P10449 费解的开关)

二进制枚举:
用一个数的二进制表示中的0/1表示两种状态,从而达到枚举各种情况
例题:力扣 子集
而且,把一个数的二进制存在数组中时,一般用反着存储会让过程变得简单常用于的题型:
抽象图都是矩阵,改变矩阵的值,产生效果达到要求,问有几种途径
eg: 洛谷 Even Parity

3.前缀和(一维和二维)

在使用前缀和数组时,下标最好从1开始

核心思想就是预处理(用空间代替时间),避免多次重复运算

一维前缀和:
例题:牛客网 【模板】前缀和
其实就是把前面的和加在一起二维前缀和:
例题:牛客网 【模板】⼆维前缀和
用二维数组解决
前缀和矩阵一般为
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j];

4.差分(一维和二维)

核心思想也是预处理,也是用空间替换时间

其实,前缀和与差分是一对互逆的运算

一维差分:
例题:牛客网 【模板】差分洛谷    P1496 ⽕烧⾚壁步骤:
1.预处理出来差分数组
f[i]表示当前元素和前一个元素的差值f[i]+=a[i];f[i+1]-=a[i];2.利用差分数组解决m次修改操作
修改操作是:原数组[L,R]区间全部加k这个操作
相当于在差分数组中,f[L]+=k;f[R+1]-=k;3.还原原始的数组
直接对差分数组做前缀和运算即可
f[i]=f[i-1]+f[i];注意事项:
差分数组使用的时候,所有的操作必须全部进行完毕后,才能还原出操作之后的数组如果操作和查询穿插在一起的话,不用差分数组,不然时间复杂度很高
eg:每操作若干次,就查询一个操作之后的结果,然回还会继续操作,继续查询
这种问题要用线段树
二维差分:
例题:牛客网 【模板】⼆维差分利用差分矩阵解决问题
作用:快速处理"将二维数组中,某一个子矩阵加上一个元素的"的操作
这个子矩阵的左上是[x1][y1],右上是[x2][y2]
与一维差分很不同的地方:
在于利用差分数组来解决m次修改
f[x1][y1]+=k;
f[x1][y2+1]-=k;
f[x2+1][y1]-=k;
f[x2+1][y2+1]+=k;
这里的前缀和的用法也是要注意的!(用的前面的二维前缀和)

5.双指针(也叫尺取法或滑动窗口)

两个指针不回退(回退没啥用)时,才能用滑动窗口法

滑动窗口的时间复杂度是O(n平方)

是先分析暴力解法(发现第一行那个),然后可以用滑动窗口法

滑动窗口步骤:
例题:洛谷  唯⼀的雪花 Unique Snowflakes
1.初始化:left right 哈希表(不一定每题都用的哈希表)
2.进窗口:right位置元素记录到统计次数的哈希表中
3.判断:当哈希表中right位置的值超过1次之后,窗口内子串不合法
4.出窗口:让left所指位置的元素在哈希表中的次数减1
5.更新结果:判断结束之后,窗口合法,此时更新窗口的大小
(在其他题时,这个更新结果不一定为这5步中的最后一步)

6.二分算法

如果逐个遍历会超时时,常用此

使用条件:要研究的问题具有二段性才行

二段性:按某种要求可以分为两部分(比如大于18岁和不大于18岁)

二分算法的时间复杂度是O(logN)

这里的模板就只用记两点:
1.while(l<r)
2.if/else成立所要执行的语句中出现-1的话(这个好判断),前面的mid就要用有+1那个
3.如果想要最后的>a,则if里面就填(f[mid]>a)
如果是有序数组中查找的话,直接用STL的lower_bound和upper_bound
这个的时间复杂度O(logN)
反之则要自己模拟实现模拟实现的细节问题:
a.while循环里面的判断如何写
b.求中点的方式选哪一种
c.二分结束之后,相遇点的情况
需要判断一下,循环结束之后,是否是我们想要的结果
二分答案:
其实跟二分查找很类似,只不过把对象改成了答案
应用场景:求最大值最小和最小值最大问题
例题:洛谷  P1873 [COCI 2011/2012 #5] EKO / 砍树

7.贪心

鼠目寸光,也就是想用局部最优找出全局最优

步骤:
1.把解决问题的过程分成若干步
2.解决每一步时,都选择"当前看起来最优的"解法
3."希望"得到全局的最优解
在竞赛时,如果根据贪心策略想出来的若干个边界情况都能过的话,就大概率没问题,不去证明了

8.倍增思想

它能够使线性的处理转化为对数级的处理,优化时间复杂度

例题:(一般只用于这俩个)
1.洛谷  P1226 【模板】快速幂LL qpow(LL a,LL b,LL p)//a的b次方对p取模{LL ret = 1;while(b)
{if(b&1)ret = ret*a%p;a = a*a%p;b>>=1; 
}return ret;//这个;易忘}
2.洛谷  P10446 64位整数乘法
//a乘b对p取模
LL qmul(LL a,LL b,LL p)
{LL sum = 0;
while(b){if(b&1) sum=(sum+a)%p;a = (a+a)%p;//倍增b>>=1;}return sum;}

9.离散化

应用场景:当题目中数据的范围很大,但是数据的总量不是很大,就可以用离散化的思想先预处理一下所有的数据

离散化模板:
排序+使用哈希表去重并且记录离散化之后的值
(有时还需要再加一个统计每个位置出现几次的数组去记录每个位置出现了几次)
离散化常要对模板进行修改
例题:洛谷  P1496 ⽕烧⾚壁
用到离散化时容易出现问题的地方(区分同种和异种)
同种被覆盖的范围的例题:洛谷  P1496 ⽕烧⾚壁异种被覆盖的范围的例题:洛谷  P3740 [HAOI2014] 贴海报
要在离散化区间[x,y]时,不仅考虑x,y这俩个值,还要把[x+1,y+1]也考虑进去。
可以让单个区间内部和区间与区间之间都出现空隙

10.递归

应用场景:搞类似二叉树和东西和有重复子问题并要dfs时常用
如果会多次重复已知计算的话,建议用递推,而不是递归
注意事项:
1.递归的出口一般写在开头的
2.尾和头处理的对就一般没问题
3.用的全局变量和局部变量的值是多久的要注意(这俩个不同)
4.递归里面的输出是从底到头搞的
5.一定要设法转化为重复子问题(利用传参的增多来实现通用化)

11.分治

就是把一个问题分为多个子问题解决

一般分为左-右-中间

应用场景:
1.解决逆序对
例题:洛谷  P1908 逆序对

‍12.其他

按照方向走的时候:
可以int d[x]={1,0,-1,0}int d[y]={0,1,0,-1}这样来表示二维上的东西可以上下左右走一格这样走
eg:洛谷的蛇形方阵
如果想要数从0开始变成从1开始的话:
可以在cin>>x之后就立马x++
eg:如果a和b的和固定,那就只用记录a的值 b的值到时候推就行了
这样可以节省存储空间
求中点用
mid = left+(right - left)/2
和 mid = left+(right - left+1)/2,避免溢出
做题时,常需要观察的性质有:
1.是不是改变顺序不影响结果
例题:洛谷  A-B 数对
取模运算技巧:
1.当计算过程中,只有"加法"和"乘法"时,想对结果取模的话,取模可以放在任意的位置
但是最后一定要有个取模
eg:(a*b*c*d)%p
和 (a%p*b*c%p*d)%p的结果一样
这个在防止超出范围时很好用
2.当计算过程中,存在"减法"时,取模结果可能是负数的,此时如果需要补正,就需要"模加模"
的技巧来补正--负的模给搞成正的那一个模
eg:写为((a-b)%p+p)%p
3.如果当计算过程中,存在"除法"时,取模是会造成结果错误的
需要用求逆元的方法
解决顶出元素且"不插入"新元素的问题:
int cnt[N];
//用于标记第i行还有多少个老元素没被顶出
让a[i][cnt[i]]每次都是第i行的最后一个元素
//顶出元素之后要i--,下标为0的不存东西

13.例题链接传送

洛谷的 [P1601 A+B Problem(⾼精)]
洛谷P2142 ⾼精度减法
洛谷 P1303 A*B Problem
洛谷 P1480 A/B Problem
力扣 子集
[牛客网 【模板】前缀和]
牛客网 【模板】⼆维前缀和
牛客网 【模板】差分
[洛谷 P1496 ⽕烧⾚壁]
牛客网 【模板】⼆维差分
洛谷 唯⼀的雪花 Unique Snowflakes
洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
洛谷 P1226 【模板】快速幂
洛谷 P10446 64位整数乘法
洛谷 P3740 [HAOI2014] 贴海报
洛谷 P1908 逆序对

相关文章:

算法基础篇(1)(蓝桥杯常考点)

算法基础篇 前言 算法内容还有搜索&#xff0c;数据结构&#xff08;进阶&#xff09;&#xff0c;动态规划和图论 数学那个的话大家也知道比较难&#xff0c;放在最后讲 这期包含的内容可以看目录 模拟那个算法的话就是题说什么写什么&#xff0c;就不再分入目录中了 注意事…...

【蓝桥杯速成】| 10.回溯切割

前面两篇内容我们都是在做有关回溯问题的组合应用 今天的题目主题是&#xff1a;回溯法在切割问题的应用 题目一&#xff1a;分割回文串 问题描述 131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 s&#xff0c;请你将 s 分割成一些 子串&#xff…...

【Spring】深入理解 Spring 事务管理

文章目录 一、事务的基本概念​原子性&#xff08;Atomicity&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolation&#xff09;持久性&#xff08;Durability&#xff09; 二、Spring 事务管理的优势​简化事务管理代码提供多种事务管理方式整合…...

java学习笔记6

按住shift键&#xff0c;选择开始的一位和最后结束的一位来全选 面向对象特征之二&#xff1a;继承性(inheritance) 面向对象特征之二:继承性1.继承性的理解 > 生活上:财产的继承、颜值的继承 > 代码层面:> 自上而下:定义了一个类A&#xff0c;在定义另一个类B时&…...

人工智能在现代科技中的应用和未来发展趋势

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是一种模拟人类智能思维和行为的技术&#xff0c;已经在现代科技中得到广泛应用。以下是人工智能在现代科技中的应用和未来发展趋势&#xff1a; 应用&#xff1a; 机器学习&#xff1a;机器学习是人工…...

第二十一章:模板与继承_《C++ Templates》notes

模板与继承 重点和难点编译与测试说明第一部分&#xff1a;多选题 (10题)第二部分&#xff1a;设计题 (5题)答案与详解多选题答案&#xff1a;设计题参考答案 测试说明 重点和难点 21.1 空基类优化&#xff08;EBCO&#xff09; 知识点 空基类优化&#xff08;Empty Base Cla…...

STC89C52单片机学习——第35节: [16-1] AD/DA

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.03.23 51单片机学习——第35节: [16-1] AD/DA 前言开发板说明引用解答和科普一、AD问题…...

算法-最大公约数

1、约数&#xff1a; 1.1 试除法求约数 原理&#xff1a;只需要遍历最小的约数即可&#xff0c;较大的那个可以直接算出来。 import java.util.*; public class Main {static Scanner sc new Scanner(System.in);public static void main(String[] args) {int t sc.nextIn…...

在 SaaS 应用上构建 BI 能力的实战之路

SaaS 产品在持续运营过程中积累了大量数据&#xff0c;这些数据不仅是数字的记录&#xff0c;更是洞察市场趋势、优化产品功能、提升用户体验的宝贵资源。 因此&#xff0c;大部分的 SaaS 产品在发展到一定阶段后&#xff0c;都会开始构建自己的报表模块或分析模块&#xff0c;…...

代码随想录刷题day51|(二叉树篇)654.最大二叉树

一、二叉树基础知识 详见&#xff1a;代码随想录刷题day34|&#xff08;二叉树篇&#xff09;二叉树的递归遍历-CSDN博客 二、递归思路 递归三部曲 构造树一般采用前序遍历&#xff0c;因为先构造中间节点&#xff0c;然后递归构造左子树和右子树&#xff1b; 1.递归函数参数…...

深入理解 C++11 智能指针:独占、共享与弱引用的完美管理

文章目录 std::unique_ptr&#xff08;独占式智能指针&#xff09;std::shared_ptr&#xff08;共享式智能指针&#xff09;std::weak_ptr&#xff08;弱引用智能指针&#xff09;示例展示&#xff1a;智能指针的原理内存泄漏**什么是内存泄漏&#xff0c;内存泄漏的危害****如…...

1.2 编译器结构

编译器具有模块化的高层结构。还可以将模块化进一步细化。编译器可以看成多个阶段构成的流水线结构。 一种没有优化的编译器结构 更复杂的编译器结构...

文件操作助手

文件操作助手 在我们实现一个大型项目时&#xff0c;往往会有一个公共模块&#xff0c;这个公共模块是公用的&#xff0c;里面可能会包含文件操作助手、字符串操作助手、时间戳操作助手… 而我们今天就来实现一个文件操作助手&#xff0c;里面包含的功能有&#xff1a; 判断…...

线段树与扫描线 —— 详解算法思想及其C++实现

目录 一、线段树&#xff08;Segment Tree&#xff09; 基本概念 结构 操作 示例代码 二、扫描线&#xff08;Sweep Line&#xff09; 基本概念 应用场景 示例代码&#xff08;矩形面积并集&#xff09; 三、总结 一、线段树&#xff08;Segment Tree&#xff09; 基本…...

Leetcode 刷题笔记1 图论part04

leetcode 110 字符串接龙 def judge(s1, s2):count 0for i in range(len(s1)):if s1[i] ! s2[i]:count 1return count 1if __name__ __main__:n int(input())begin_str, end_str map(str, input().split())if begin_str end_str:print(0)exit()strlist []for _ in ran…...

快速入手:Nacos融合SpringCloud成为注册配置中心

快速入手&#xff1a;Nacos融合SpringCloud成为注册配置中心 前言安装Nacos项目搭建添加配置启动类添加注解运行项目服务调用RestTemplate 模式FeignClient 模式 前言 Spring Cloud是一系列框架的集合&#xff0c;提供了微服务架构下的各种解决方案&#xff0c;如服务治理、配…...

others-rustdesk远程

title: others-rustdesk远程 categories: Others tags: [others, 远程] date: 2025-03-19 10:19:34 comments: false mathjax: true toc: true others-rustdesk远程, 替代 todesk 的解决方案 前篇 官方 服务器 - https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-o…...

go:前后端分离

1.前端代码 新建一个前端文件夹&#xff0c;在该文件夹下新建一个.html文件&#xff0c;写入自己的html代码。 前端搞定。 2.后端代码 其核心是挂载路由接受前端传来的数据核心代码如下&#xff1a; func main() { // 服务运行提示 fmt.Println("go web server is runn…...

lodash 学习笔记/使用心得

lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得&#xff0c;最近也是打算清理一下所有的 dead code&#xff0c;然后发现我们用了好多的 lodash 方法。对比了之前的写法&#xff0c;重新看了一下官方文档&#xff0c;再自己重新动手写了点 util 之后发现…...

网络爬虫【爬虫库request】

我叫不三不四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲爬虫 Requests是Python的一个很实用的HTTP客户端库&#xff0c;完全满足如今网络爬虫的需求。与Urllib对比&#xff0c;Requests不仅具备Urllib的全部功能&#xff1b;在开发使用上&…...

AI日报 - 2025年3月24日

&#x1f31f; 今日概览&#xff08;60秒速览&#xff09; ▎&#x1f916; AGI突破 | Lyra生物序列建模架构效率惊人 在100生物任务中达最优&#xff0c;推理速度提升高达12万倍 ▎&#x1f4bc; 商业动向 | OpenAI用户破4亿&#xff0c;Meta与Reliance探讨AI合作 生态扩展与全…...

Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现

一、前言 在移动互联网蓬勃发展的今天&#xff0c;视频播放功能已成为众多Android应用的核心特性之一。面对多样化的视频格式和传输协议&#xff0c;开发一款高效、稳定的视频播放器是许多开发者追求的目标。FLV&#xff08;Flash Video&#xff09;格式&#xff0c;尽管随着H…...

动态规划——混合背包问题

动态规划——混合背包问题 混合背包问题01背包与完全背包的混合&#xff1a;完全背包与多重背包的混合&#xff1a;三种背包混合混合背包OJ汇总 混合背包问题 将01背包、完全背包、多重背包混合起来的背包问题。也就是说&#xff0c;有的物品只可以取一次&#xff08;01背包&a…...

数据库操作练习

一.向heros表中新增一列信息&#xff0c;添加一些约束&#xff0c;并尝试查询一些信息 //向表中添加一列age信息 alter table heros add column age int;//id列添加主键约束&#xff0c;设置自增 alter table heros modify column id int auto_increment primary key;//name列…...

3.milvus索引-HNSW

索引作用 加速大型数据集上的查询。 向量字段&#xff0c;仅只能创建一个索引。 milvus支持的向量索引类型大部分使用 近似最近邻搜索算法。ANNS该算法的核心不局限于返回最准确的结果&#xff0c;而是仅搜索目标的邻居。ANNS通过在可接受的范围内牺牲准确性提高检索效率。 …...

算法基础——栈

一、栈的概念 栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作的线性表。 进⾏数据插⼊或删除的⼀端称为栈顶&#xff0c;另⼀端称为栈底。不含元素的栈称为空栈。进栈就是往栈中放⼊元素&#xff0c;出栈就是将元素弹出栈顶。 二、栈的模拟实现 1. 创建 本质还是线性表&#…...

开发语言漫谈-groovy

groovy是一门脚本语言&#xff0c;在前期的脚本语言中简单介绍了下。现在再深入介绍下&#xff0c;因为它是本平台上选用的脚本语言。所谓脚本语言就是不用编译&#xff0c;直接执行。这种特色非常适合做嵌入编程&#xff0c;即编即用。我们知道平台后台的业务开发语言是Java&a…...

ArkUI-List组件

列表是一个复杂的容器&#xff0c;当列表项达到一定数量&#xff0c;使得列表内容超出其范围的时候&#xff0c;就会自动变为可以滚动。列表适合用来展现同类数据类型。 List组件支持使用&#xff0c;条件渲染&#xff0c;循环渲染&#xff0c;懒加载等渲染控制方式生成子组件…...

数据仓库的 DWD 分层架构:构建高效数据平台的基石

在数据驱动的时代&#xff0c;数据仓库&#xff08;Data Warehouse&#xff09;作为企业数据分析的核心基础设施&#xff0c;扮演着至关重要的角色。而数据仓库的分层设计&#xff0c;则是确保数据高效流转、提升数据质量、支持复杂分析的关键。本文将深入探讨数据仓库的 DWD 分…...

山东大学数据结构课程设计

题目&#xff1a;全国交通咨询模拟系统 问题描述 处于不同目的的旅客对交通工具有不同的要求。例如&#xff0c;因公出差的旅客希望在旅途中的时间尽可能地短&#xff0c;出门旅游的旅客则期望旅费尽可能省&#xff0c;而老年旅客则要求中转次数最少。编织一个全国城市间的交…...

动态规划-01背包

兜兜转转了半天&#xff0c;发现还是Carl写的好。 看过动态规划-基础的读者&#xff0c;大概都清楚。 动态规划是将大问题&#xff0c;分解成子问题。并将子问题的解储存下来&#xff0c;避免重复计算。 而背包问题&#xff0c;就是动态规划延申出来的一个大类。 而01背包&…...

【2025】基于node.js的中医药科普平台的设计与实现(源码、万字文档、图文修改、调试答疑)

项目完整功能以演示视频为准 基于Node.js的中医药科普平台的设计与实现功能结构图如下 课题背景 随着人们健康意识的提高&#xff0c;中医药作为传统医学的重要组成部分&#xff0c;越来越受到关注。然而&#xff0c;中医药知识专业性强&#xff0c;普通大众获取准确、全面的中…...

基于Flux模型的多模态可控图像生成工作流实践

一、技术框架与模型选型 当前图像生成领域对多模态控制与一致性保持的需求日益增强&#xff0c;本文将基于Black Forest Labs推出的Flux.1模型&#xff0c;结合ControlNet的循环一致性优化技术&#xff0c;构建一套融合Canny边缘检测与深度图&#xff08;Depth&#xff09;控制…...

缓存过期时间之逻辑过期

1. 物理不过期&#xff08;Physical Non-Expiration&#xff09; 定义&#xff1a;在Redis中不设置EXPIRE时间&#xff0c;缓存键永久存在&#xff08;除非主动删除或内存淘汰&#xff09;。目的&#xff1a;彻底规避因缓存自动过期导致的击穿&#xff08;单热点失效&#xff…...

JVM类加载过程详解

文章目录 前言1.加载2.链接验证文件格式验证元数据验证字节码验证符号引用验证 准备解析 3.初始化4.类卸载 前言 类从被加载到虚拟机内存中开始到卸载出内存为止&#xff0c;它的整个生命周期可以简单概括为 7 个阶段&#xff1a;加载&#xff08;Loading&#xff09;、验证&a…...

第三十二篇 深入解析Kimball维度建模:构建企业级数据仓库的完整框架

目录 一、维度建模设计原则深度剖析1.1 业务过程驱动设计1.2 星型模式VS雪花模式 二、维度建模五步法实战&#xff08;附完整案例&#xff09;2.1 业务需求映射2.2 模型详细设计2.3 缓慢变化维处理 三、高级建模技术解析3.1 渐变维度桥接表3.2 快照事实表设计 四、性能优化体系…...

WPF 布局中的共性尺寸组(Shared Size Group)

1. 什么是共性尺寸组&#xff1f; 在 WPF 的 Grid 布局中&#xff0c;SharedSizeGroup 允许多个 Grid 共享同一列或行的尺寸&#xff0c;即使它们属于不同的 Grid 也能保持大小一致。这样可以保证界面元素的对齐性&#xff0c;提高布局的一致性。 SharedSizeGroup 主要用于需…...

19 数码管的动态显示

1、八段数码管 八段数码管 是一个 “ 8 ” 字型数码管&#xff0c;分为八段&#xff0c;a b c d e f g dp&#xff0c;其中dp为小数点。每一段为一个发光二极管&#xff0c;这样的 8 段称为 段选信号 。 2、实验 1、实验目标&#xff1a;让六位数码管 从 0 开始记数&#xff0…...

pytorch 笔记:张量索引的维度扩展规则

1 基本原理 在PyTorch中&#xff0c;张量索引的维度扩展规则遵循以下原则&#xff1a; 索引操作的核心规则&#xff1a;​ 当使用索引数组访问张量时&#xff1a; 索引数组的每个元素对应选取原张量的一个子张量结果形状 索引数组形状 原张量剩余维度形状 这么说可能不清…...

课外活动:怎么理解可变成本?

可变成本深度解析 &#x1f9ee; 一、可变成本的本质 #mermaid-svg-qoqQaFxQBuZZfAD2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qoqQaFxQBuZZfAD2 .error-icon{fill:#552222;}#mermaid-svg-qoqQaFxQBuZZfAD2 …...

深入理解 JVM 的垃圾收集器:CMS、G1、ZGC

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

IDEA 快捷键ctrl+shift+f 无法全局搜索内容的问题及解决办法

本篇文章主要讲解IDEA、phpStrom、webStrom、pyCharm等jetbrains系列编辑器无法进行全局搜索内容问题的主要原因及解决办法。 日期&#xff1a;2025年3月22日 作者&#xff1a;任聪聪 现象描述&#xff1a; 1.按下ctrlshiftf 输入法转为了繁体。 2.快捷键ctrlshiftr 可以全局检…...

智慧高速,安全护航:视频监控平台助力高速公路高效运营

随着我国高速公路里程的不断增长&#xff0c;交通安全和运营效率面临着前所未有的挑战。传统的监控方式已难以满足现代化高速公路管理的需求&#xff0c;而监控视频平台的出现&#xff0c;则为高速公路的安全运营提供了强有力的技术支撑。高速公路视频监控联网解决方案 高速公路…...

括弧匹配检验(信息学奥赛一本通-1354)

【题目描述】 假设表达式中允许包含两种括号&#xff1a;圆括号和方括号&#xff0c;其嵌套的顺序随意&#xff0c;如&#xff08;&#xff3b; &#xff3d;&#xff08;&#xff09;&#xff09;或&#xff3b;&#xff08;&#xff3b; &#xff3d;&#xff3b; &#xff3…...

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样&#xff0c;文件直接保存在服务器&#xff0c;需要再下载到本地。 方法 在 官网下载Download for desktop&#xff0c;注意要下对版本&#xff0c;千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…...

【秣厉科技】LabVIEW工具包——OpenCV 教程(11):人脸检测与识别

文章目录 前言级联分类器FaceDetectorYNFaceRecognizerSF1. 特征提取2. 人脸对比3. 人脸身份识别&#xff08;最佳匹配法&#xff09; 总结 前言 需要下载安装OpenCV工具包的朋友&#xff0c;请前往 此处 &#xff1b;系统要求&#xff1a;Windows系统&#xff0c;LabVIEW>…...

C++-C++中的几种cast

文章目录 static_castPOD类型互转任意指针类型与void*互转基类继承类之间的互转具有目标类型转换函数的类/单参数的构造函数 dynamic_castreinterpret_cast static_cast 所谓static&#xff0c;意思是在编译期进行的转换&#xff0c;static_允许如下转换&#xff1a; POD类型…...

list的模拟实现和学习

1. list的介绍及使用 说白了就是带头循环双向循环链表 stl 的两大组件就是容器和算法 &#xff0c;他们两个之间是通过迭代器进行联系的 这三种算法函数 迭代器的种类 性质&#xff08;容器底层结构决定&#xff09; 单项&#xff1a; forward_list /哈希(unord…...

程序代码篇---Pyqt的密码界面

文章目录 前言一、代码二、代码解释2.1用户数据库定义2.2窗口初始化2.3认证逻辑2.5角色处理2.6错误处理优化2.7功能扩展说明2.7.1用户类型区分管理员普通用户其他用户 2.7.2安全增强建议 三、运行效果四、运行命令五、界面改进建议5.1密码显示5.2用户头像显示5.3输入框动画效果…...

设计模式的六大原则

设计模式的六大原则 1. 单一职责原则 (Single Responsibility Principle, SRP) 一个类应该只负责一项职责。 示例代码 // 不好的设计&#xff1a;一个类承担多个职责 typedef struct {void (*read_data)(void);void (*process_data)(void);void (*save_data)(void);void (*…...