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

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

算法基础篇

前言

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

注意事项:

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 逆序对

相关文章:

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

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

【Pandas】pandas Series cat

# Pandas2.2 Series ## Accessors |方法|描述| |-|:-------| |Series.str|对 Series 中的字符串元素进行矢量化字符串操作| |Series.cat|用于处理分类数据&#xff08;Categorical Data&#xff09;的属性| ### pandas.Series.cat pandas.Series.cat 是用于处理分类数据&am…...

Python的类和对象(3)

1、类的继承 父类&#xff1a;被继承 子类&#xff1a;继承者 – 可以使用父类的所有属性和方法、大大简化代码。 语法&#xff1a;在类名字后加上&#xff08;继承的类名字&#xff09; # 定义类 -- 父类 class Car:# 定义类属性wheel "有车轮"engine "有引…...

C语言修饰符汇总详解

在C语言中,修饰符(或称类型限定符)是用于修饰数据类型的关键字,可以改变变量或类型的性质和行为。它们通常用来控制存储类型、符号、大小、对齐、访问权限等。C语言中的修饰符主要可以分为以下几类: 类型修饰符存储类别修饰符常量和易变修饰符以下是C语言中所有修饰符的详…...

猎豹移动(Cheetah Mobile)

本文来自腾讯元宝 公司背景与发展历程 ​成立与早期定位 猎豹移动成立于2010年11月&#xff0c;由金山安全与可牛影像合并而成&#xff0c;初期以移动安全工具和清理软件为核心业务。其明星产品包括《猎豹清理大师》&#xff08;Clean Master&#xff09;和《猎豹浏览器》&…...

VLN 论文精读(二)VL-Nav: Real-time Vision-Language Navigation with Spatial Reasoning

这篇笔记用来描述2025年发表在arxiv上的一篇有关VLN领域的论文&#xff0c;由纽约州立大学布法罗分校和卡耐基梅隆联合发布。其主要创新点在于&#xff1a;像素级的视觉-语意特征、低算力移动设备部署、30Hz控制实时性、VLM模型的zero-shot &#xff1b; 整个导航流程大概如下…...

优选算法系列(2.滑动窗口 _ 上)

目录 解法⼀&#xff08;暴力求解&#xff09;&#xff08;不会超时&#xff0c;可以通过&#xff09;&#xff1a;一.长度最小的子数组&#xff08;medium&#xff09; 题目链接209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; 代码&#…...

RK3568 android11 基于PN7160的NXP NFC移植

一,概述 1. 模块概述 PN7160专为在各种系统实现快速集成而设计,支持所有符合NFC Forum的模式,包括Android和Linux驱动程序,并支持实时操作系统和无操作系统的应用(PN7160不符合EMVCo)。嵌入式NFC固件减少了对主机交互的需求,并最大限度缩小了代码尺寸,使设计更轻松。…...

【网工第6版】第1章 计算机网络概论

目录 1计算机网络形成和发展 ■计算机网络 ■我国互联网发展 ■计算机网路分类 ■计算机网络应用 2 OSI和TCP/IP参考模型 ■网络分层的意义 ■OSI参考模型 ■TCP/IP参考模型 ■TCP/IP参考模型协议 3 数据封装与解封过程 ■封装 ■解封 1计算机网络形成和发展 ■计…...

【嵌入式】keil5安装(同时兼容C51和STM32)

最近在开发STM32的时候&#xff0c;安装Keil5&#xff0c;遇到STM32和C51的共存的问题&#xff0c;在网上找了很多方法&#xff0c;又遇到一些bug&#xff0c;最终还是弄好了。因此将处理的过程记录下来&#xff0c;希望对遇到相同问题的朋友一些启发。 1、下载安装包 Keil P…...

每日一题--进程与协程的区别

进程是什么&#xff1f; 进程&#xff08;Process&#xff09; 是操作系统进行 资源分配和调度的基本单位&#xff0c;代表一个正在执行的程序实例。每个进程拥有独立的虚拟地址空间、代码、数据和系统资源&#xff08;如文件句柄、网络端口等&#xff09;。进程之间通过 IPC&…...

网络安全运维应急响应与溯源分析实战案例

在日常运维过程中&#xff0c;网络安全事件时有发生&#xff0c;快速响应和精准溯源是保障业务稳定运行的关键。本文将通过一个实际案例&#xff0c;详细解析从发现问题到溯源定位&#xff0c;再到最终解决的完整流程。 目录 一、事件背景 二、事件发现 1. 监控告警触发 2…...

leetcode29. 两数相除-medium

1 题目&#xff1a;两数相除 官方标定难度&#xff1a;中 给你两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#xff0c;也就是截去&#xff08;truncate&#xff09;其小数部分。…...

深海300米的低温环境中的BMS优化方法

在深海300米的低温环境中&#xff0c;采用扩展卡尔曼滤波&#xff08;EKF&#xff09;结合温度补偿模型实现电池管理系统&#xff08;BMS&#xff09;的荷电状态&#xff08;SOC&#xff09;精确估计&#xff0c;需通过以下步骤实现&#xff1a; 1. 低温电池模型建立 1.1 电池…...

高主频GPU+RTX4090:AI生图性能优化超150%

概述&#xff1a;消费级高主频CPU搭配 RTX 4090显卡可以显著提高AI生图的性能&#xff0c;相比于企业级CPU具有更大的吞吐量和更优的成本效益。 引言&#xff1a;在AI图像生成过程中&#xff0c;CPU与GPU的协同效应对系统的整体性能至关重要。测试表明&#xff0c;与RTX 4090显…...

OpenCV 图像双线性插值

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 双线性插值是一种 二维插值方法,用于计算 栅格(Grid) 或 像素点 之间的插值值。它主要用于 图像缩放、旋转、变换 等操作,以在新像素位置估算灰度值或颜色值。 如上图所示,假设存在一个二维离散函数(如图像)…...

OpenCV计算摄影学(23)艺术化风格化处理函数stylization()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 风格化的目的是生成不以照片写实为目标的多种多样数字图像效果。边缘感知滤波器是风格化处理的理想选择&#xff0c;因为它们能够弱化低对比度区…...

《我的Python觉醒之路》之转型Python(十五)——控制流

[今天是2025年3月17日&#xff0c;继续复习第一章节、第二章节的内容 ] 《我的Python觉醒之路》之转型Python&#xff08;十四&#xff09;——控制流...

内存管理

一.什么是内存管理呢&#xff1f; 我们可以来看一下这个图&#xff0c;我们来了解一下这些地方都存的是什么。 数据段就是存放全局和静态变量的&#xff0c;代码段是存放常量的。 栈 局部变量&#xff1a;在函数内部定义的变量&#xff0c;其存储空间在栈上分配。当函数被调用时…...

学习threejs,使用MeshLambertMaterial漫反射材质

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshLambertMaterial…...

P41-指针进阶1、2

1.字符指针 2.数组指针 3.指针数组 4.数组传参和指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针 8.回调函数 9.指针和数组面试题的解析 指针的主题&#xff0c;我们在初级阶段的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念 1.指针就是个…...

旅游类小程序界面设计

产品概述 艾啦游是一款互联网旅游类小程序&#xff0c;致力于国内精品旅游&#xff0c;以及拥有自由行、专属热榜单、出行攻略等诸多功能&#xff0c;汇聚了许多国内的人气景点&#xff0c;与诸多城市的酒店也保持合作&#xff0c;打造一体式旅行服务&#xff0c;更有不断上新…...

探索具身多模态大模型:开发、数据集和未来方向(下)

25年2月来自广东人工智能和数字经济实验室、深圳大学、巴黎理工学院和巴黎高等师范学院、中山大学的论文“Exploring Embodied Multimodal Large Models: Development, Datasets, and Future Directions”。 近年来&#xff0c;具身多模态大模型 (EMLM) 因其在复杂的现实环境中…...

14 结构体

结构体 结构体是什么&#xff1f; 在前面我们学习过基础的数据类型int float char 等&#xff0c;都只能用来表示基础的数据类型&#xff0c;那么要怎么来表示复杂的数据类型呢&#xff1f; 比如学生信息&#xff1a; 学号姓名性别年龄总分数100maye男18666101椰汁女19555 …...

如何配置 Docker 以实现无需 sudo 使用

1. 背景知识&#xff1a;为什么需要 sudo&#xff1f; Docker 是一个容器化平台&#xff0c;其核心组件包括&#xff1a; Docker 守护进程&#xff08;dockerd&#xff09;&#xff1a;负责管理容器的创建、运行和销毁。Docker CLI&#xff1a;用户通过命令行工具&#xff08…...

嵌入式开发之STM32学习笔记day06

基于STM32F103C8T6的开发实践——从入门到精通01 1. 引言 STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器&#xff0c;广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款&#xff0c;凭借其强大的性能、丰富的外设接口和低廉的价格…...

openocd C#桌面工具

文章目录 简介一、主界面二、文件列表三、rtl介绍四、虚拟示波器1、画线2、画点3、合并显示4、测试代码简介 基于廉价9.9包邮的DAP-Link,在IAR和Keil中下载和调试都没毛病。 可是不能单独使用。单独烧录固件用不了,也不能同jlink一样打印日志和显示波形。 openocd开源工具能…...

goland小问题报错及解决

报错信息&#xff1a; cannot use rw (variable of type *populateResponse) as ResponseWriter value in argument to t.fh.ServeHTTP: *populateResponse does not implement ResponseWriter (missing method Fprintf) cannot use rw (variable of type *http2responseWrite…...

AtCoder Beginner Contest 397 A - D题解

Tasks - OMRON Corporation Programming Contest 2025 (AtCoder Beginner Contest 397) 本文为 AtCoder Beginner Contest 397 A - D题解 题目A: 代码(C): #include <bits/stdc.h>int main() {double n;std::cin >> n;if (n > 38.0) {std::cout << 1;}…...

18年老牌软件,完美解锁pro!

很多小伙伴在学习、工作中都喜欢使用思维导图来整理和记录自己的思路&#xff0c;通过图形化的方式展示复杂概念和关系&#xff0c;使信息更加清晰易懂&#xff0c;有助于理解和记忆&#xff1b;其次&#xff0c;分层次和分类别的信息结构也能够快速理清思路&#xff0c;突出重…...

Power Apps 技术分享:画布应用使用表单控件

前言 表单控件&#xff0c;是画布应用里一个非常好用的控件&#xff0c;我们今天简单介绍下&#xff0c;如何使用这个控件。 正文 1.首先&#xff0c;我们需要有一个数据源&#xff0c;我们这里用上一篇博客新建的数据源&#xff0c;如下图&#xff1a; 2.新建一个页面&#xf…...

视频转音频, 音频转文字

Ubuntu 24 环境准备 # 系统级依赖 sudo apt update && sudo apt install -y ffmpeg python3-venv git build-essential python3-dev# Python虚拟环境 python3 -m venv ~/ai_summary source ~/ai_summary/bin/activate核心工具链 工具用途安装命令Whisper语音识别pip …...

ZLMediaKit源码分析——[1] 开篇:onceToken源码分析

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC学习一:获取音频和视频设备 第五篇 WebRTC学习二:WebRTC音视频数据采集 第六篇 WebRTC学习三:WebRTC音视频约束 …...

EasyRTC嵌入式音视频通话SDK:微信生态支持、轻量化架构与跨平台兼容性(Linix/Windows/ARM/Android/iOS/LiteOS)

随着WebRTC技术的不断发展&#xff0c;实时音视频通信在各个领域的应用越来越广泛。EasyRTC嵌入式音视频通话SDK作为一款基于WebRTC技术的实时通信解决方案&#xff0c;凭借其强大的功能和灵活的集成能力&#xff0c;受到了越来越多开发者的关注。 一、系统架构设计 纯C语言开…...

Python中使用vlc库实现视频播放功能

文章目录 前言1. 环境准备1.1Python安装1.2选择Python开发环境1.3安装必要库 2. 基础播放示例3. 常用播放控制功能4. 事件监听5. 播放网络流媒体6. 结合 GUI 库制作视频播放器&#xff08;以 Tkinter 为例&#xff09; 前言 本教程主要包含打开文件、播放和停止按钮&#xff0…...

Elasticsearch面试题

以下是150道Elasticsearch面试题及其详细回答&#xff0c;涵盖了Elasticsearch的基础知识、配置与优化、查询操作、集群管理、性能调优等多个方面&#xff0c;每道题目都尽量详细且简单易懂&#xff1a; Elasticsearch基础概念类 1. 什么是Elasticsearch&#xff1f; Elastics…...

Linux上位机开发实战(qt编译之谜)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多同学都喜欢用IDE&#xff0c;也能理解。因为不管是visual studio qt插件&#xff0c;还是qt creator其实都帮我们做了很多额外的工作。这里面最…...

SpringBoot3+Druid+MybatisPlus多数据源支持,通过@DS注解配置Service/Mapper/Entity使用什么数据源

在 Spring Boot 3 中结合 Druid 和 MyBatis-Plus 实现多数据源支持&#xff0c;并通过 DS 注解动态切换数据源&#xff0c;可以按照以下步骤进行配置&#xff1a; 官方文档&#xff1a;多数据源支持 | MyBatis-Plus 1. 引入依赖 在 pom.xml 中添加以下依赖&#xff1a; <…...

Java学习------内部类

1. 定义 定义在一个类中的类 2. 使用时机 当一个类需要用到另一个类&#xff0c;并且两个类的联系比较密切时就需要使用内部类内部类可以访问外部类的私有成员&#xff0c;这样可以将相关的类和接口隐藏在外部类的内部&#xff0c;提高封装性匿名内部类是没有名字的类&#…...

【QA】建造者模式在Qt有哪些应用

#设计模式 #Qt 一、QDomDocument&#xff08;XML 文档构建&#xff09; 模式角色&#xff1a; Builder&#xff1a;QDomDocument 本身Product&#xff1a;XML 文档对象Director&#xff1a;用户代码通过 QDomDocument 逐步构建文档结构 示例代码&#xff1a; QDomDocument…...

uniapp 多环境配置打包,比较优雅的解决方案,全网相对优解

uniapp 多环境配置打包&#xff0c;比较优雅的解决方案&#xff0c;全网相对优解 读取.env.[development|test|staging|production]配置文件进行打包&#xff0c;最终效果如下图可以看到多个环境&#xff0c; 并且我们可以自定义更多的环境配置 前言 由于uniapp的hbuilder开发…...

【量化科普】Liquidity,流动性

【量化科普】Liquidity&#xff0c;流动性 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在金融市场中&#xff0c;流动性&#xff08;Liquidity&#xff09;是一个至关重要的概念。它指的是资产能够以多快的速度被买入或卖出而不显著影响其价格的能力。高流动性的…...

qt介绍图表 charts 一

qt chartsj基于Q的Graphics View框架&#xff0c;其核心组件是QChartView和QChart.QChartView是一个显示图表的独立部件&#xff0c;基类为QGraphicsView.QChar类管理图表的序列&#xff0c;图例和轴示意图。 绘制一个cos和sin曲线图&#xff0c;效果如下 实现代码 #include…...

如何图像去噪?(一)

喜欢可以在我的主页订阅专栏哟&#xff0c;至少更新6年~~&#xff0c;更到我上大学也可能会继续更~~ 第一章 图像去噪的基础知识与核心概念 1.1 图像噪声的数学模型与物理成因 定义扩展&#xff1a; 图像噪声是信号采集、传输或存储过程中引入的随机干扰&#xff0c;其本质为…...

【数据库】Data Model(数据模型)数据模型分析

理解图片中的 Data Model&#xff08;数据模型&#xff09;是学习数据库设计和应用程序开发的重要一步。作为初学者&#xff0c;你可以通过比喻和简单的解释来理解这些概念以及它们之间的联系。以下是对图片中数据模型的详细分析&#xff0c;以及如何理解它们之间的关系。 1. 数…...

win10 c++ VsCode 配置PCL open3d并显示

win10 c VsCode配置PCL open3d并显示 一、效果图二、配置步骤2.1 安装vscode2.2 pcl-open3d配置2.3 vscode中设置 三、测试代码四、注意事项及后续 一、效果图 二、配置步骤 2.1 安装vscode vscode下载链接 下载中文插件、c相关插件 2.2 pcl-open3d配置 1&#xff09;下载…...

Flask多参数模版使用

需要建立目录templates&#xff1b; 把建好的html文件放到templates目录里面&#xff1b; 约定好参数名字&#xff0c;单个名字可以直接使用&#xff1b;多参数使用字典传递&#xff1b; 样例&#xff1a; from flask import render_template # 模板 (Templates) #Flask 使用…...

python中a is None 和 a==None有区别吗

在 Python 中&#xff0c;a is None 和 a None 的区别如下&#xff1a; 1. a is None 这是身份&#xff08;identity&#xff09;比较&#xff0c;用于检查 a 是否就是 None 这个对象。None 是 Python 的单例对象&#xff0c;意味着在 Python 运行过程中&#xff0c;所有 No…...

Excel(函数篇):COUNTIF与CONUTIFS函数、SUMIF与SUMIFS函数、ROUND函数、MATCH与INDEX函数、混合引用与条件格式

目录 COUNTIF和COUNTIFS函数COUNTIF函数COUNTIFS函数SUMIF和SUMIFS函数SUMIF函数SUMIFS函数SUMIFS函数与控件实现动态年月汇总ROUND、ROUNDUP、ROUNDDOWN函数单元格混合引用条件格式与公式,标记整行数据MATCH和INDEX函数COUNTIF和COUNTIFS函数 COUNTIF函数 统计下“苏州”出现…...

C语言及内核开发中的回调机制与设计模式分析

在C语言以及操作系统内核开发中,回调机制是一种至关重要的编程模式。它通过注册框架和定义回调函数,实现了模块间的解耦和灵活交互,为系统的扩展性和可维护性提供了有力支持。本文将深入探讨这种机制的工作原理、应用场景以及与设计模式的关联。 一、回调机制的核心概念 (…...