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

第四十六章 动态规划——状态机模型

第四十六章 动态规划——状态机模型

  • 一、通俗理解状态机DP
    • 1、什么是状态机
    • 2、什么是状态机DP
  • 二、例题
    • 1、AcWing 1049. 大盗阿福
      • (1)问题
      • (2)分析
        • a.状态定义
        • b.状态转移
        • c.循环设计
        • d.初末状态
      • (3)代码
    • 2、AcWing 1057. 股票买卖 IV
      • (1)问题
      • (2)分析
        • a.状态定义
        • b.状态转移
        • c.循环设计
        • d.初末状态
      • (3)代码
        • 规定卖出算一次交易
        • 规定买入算一次交易

一、通俗理解状态机DP

其实状态机DP只是听起来高级,其实我们之前做的所有关于DP的题几乎都算是状态机,为什么呢?

1、什么是状态机

大家继续向下看:

DP解决的是多决策的问题,那么我们可以把01背包问题画成下面的图:
在这里插入图片描述按照正常的逻辑,我们一般都是从第一个物品开始看,决定选或者不选,然后再去看第二个物品。那么我们现在只看其中一个物品,这个物品无非就两个状态,在背包里,不在背包里。

其实这两个状态就构成了一个状态机。
在这里插入图片描述

写到这里,我们就可以通俗地理解一下状态机,状态机的作用就是记录一个事件所有可能的存在状态以及这些状态之间的联系。这个作用或许大家现在还会感到一些模糊,但是没关系,后面的例题中作者会进行详细地讲解,让大家深刻体会到。

2、什么是状态机DP

那么什么是状态机DP呢?这种DP方式和之前的DP有什么不同呢?

状态机DP就是在DP数组中专门开辟一个维度记录当前事件所处的状态,比如背包问题如果写成状态机DP的模式,我们会写成f[i][j][1]f[i][j][1]f[i][j][1]或者f[i][j][0]f[i][j][0]f[i][j][0],此时的1代表第i个物品在背包里,0说明第i个物品不在背包里。状态定义可以写作:在前i个物品中选,背包容量为j,且第i个物品在(或者不在)背包中的时候,我们所能携带的最大价值。

其实通过这个例子,大家就能明显地感觉到,在状态机模型中我们强调并记录当前事物的状态

可是这样做有啥用呢?

作者可以给01背包问题加上一个情景,不能选择相邻的物品。此时如果还按照我们之前的做法,用f[i][j]来定义的话,你对某个物品的具体状态是模糊的。我们一般是用f[i-1][j]和f[i-1][j-v]+w来写转移方程,但是你无法判断第i-1个物品是否在背包里,也就是说你不知道第i-1个物品所处的状态。

但是此时如果按照状态机模型来写,特意强调一下某个物品的状态,我们就可以利用第三维度的0和1来判断能否选当前的物品。

那么此时可以总结一下什么时候用状态机DP,当某个事件的状态影响到后面事件的决策的时候,我们需要在状态定义的时候记录事件状态,即状态机DP。

二、例题

1、AcWing 1049. 大盗阿福

(1)问题

在这里插入图片描述

(2)分析

这道题其实就算是一个01背包问题加状态机DP,如果转化为01背包问题的话,即:从1到i个物品里面选,不限制背包容量但是不能够选择相邻物品的情况下,所能携带的最大价值。

a.状态定义

按照刚刚的状态机的解释来看,这道题中把某个店铺看作一个事件,那么抢或者不抢就是这个店铺的状态。而状态机往往也记录了一个事件中各个状态的转移。

但是这里为了解释的更加清楚,我们找到两个相邻的店铺,分别表示出他们的状态,画出状态之间的转移:如下图所示
在这里插入图片描述
由于题目中强调不能抢相邻的,所以如果我们抢了店铺A,那么下一次就不能抢店铺B,(假设A和B相邻)。

所以我们的f[i][j]表示的是,在前i个店铺里抢劫,且抢(或者不抢)店铺i的情况下,所能抢得的最大价值。0表示不抢,1表示抢。

b.状态转移

上面这个图其实也说明了状态转移方程的书写思路。这里就直接写了。
f(i,1)=f(i−1,0)+w[i]f(i,0)=max(f(i−1,1),f(i−1,0))f(i,1)=f(i-1,0)+w[i]\\ f(i,0)=max(f(i-1,1),f(i-1,0)) f(i,1)=f(i1,0)+w[i]f(i,0)=max(f(i1,1),f(i1,0))
最后在f(n,1)和f(n,0)中选一个最大值。

c.循环设计

根据转移方程,我们写一个一维的循环即可。

d.初末状态

根据转移方程,我们需要初始化的是两个状态:f[0][0]和f[0][1]。很明显第0个店铺是不存在的,所以f[0][1]是不合法的,初始化为负无穷即可。或者从另一个角度理解,我们的第1个店铺可选可不选,所以第0个店铺一定是不能选的,那么为了不选第0个,只能将f[0][1]变成负无穷。
其实这里不管它也能过,因为店铺的价值最少就是0,虽然这个状态不合法, 但是不影响答案。可是在后续的题目中,初始化会对答案造成一定影响,所以最好还是对不合法的状态进行一定的初始化。

(3)代码

#include<iostream>
using namespace std;
const int N=1e5+10,INF=0x3f3f3f3f;
int w[N],f[N][2];
int main()
{int T;cin>>T;while(T--){int n;cin>>n;for(int i=1;i<=n;i++)scanf("%d",w+i);f[0][0]=0,f[0][1]=-INF;for(int i=1;i<=n;i++){f[i][0]=max(f[i-1][0],f[i-1][1]);f[i][1]=f[i-1][0]+w[i];   }cout<<max(f[n][0],f[n][1])<<endl;}return 0;   
}

2、AcWing 1057. 股票买卖 IV

(1)问题

在这里插入图片描述

(2)分析

这道题我们首先得明确一点,我们只有一支股票,只是这支股票在不同天有着不同的价格,因此我们可以把天作为单位划分不同的状态。同时这道题中还有一个关键的信息,同一时刻,我们只能做一次交易,什么意思呢?即当这只股票在我们的手里的时候,我们无法再次进行购买,只能把这个股票卖出或者不卖。如果这支股票不在我们手里,那么我们只能选择买或者不买。

同时,题目还规定,买入股票和卖出股票算一次交易。因此,我们可以认为二者各算半次交易。由于只有手中有股票的时候才能卖出,说明再次之前已经买入。因此,我们可以在卖出股票的时候,把我们的交易次数+1。

a.状态定义

f[i][j][0]f[i][j][0]f[i][j][0]表示在1到i天中买卖股票,当前已经进行了j次交易,且在第i天里,手中没有当前股票的时候,所得到的最大利润。
f[i][j][1]f[i][j][1]f[i][j][1]表示在1到i天中买卖股票,当前已经进行了j次交易,且在第i天里,手中有当前股票的时候,所得到的最大利润。

b.状态转移

状态转移的话,我们可以画出下面的图,这样更加清晰:
在这里插入图片描述

c.循环设计

这道股票的题其实如果不看状态之间的影响的话,其实就是一个01背包,因此我们按照01背包的逻辑来循环即可,即外层循环i,内层循环j。

d.初末状态

这里初始化比较麻烦,因为我们将卖出股票算作一次完整的交易,这一规定使得我们的初始化变得比较复杂。根据我们的规定,f[i][0][1]这种定义也是存在的,即从0到i中选一个最便宜的购入,就是当下的最优解。但是f[0][0][1]是不合法的,因此第0天的股票多贵不知道,没法买,而f[0][0][0]初始化为0即可,这个状态是存在的,第0天的股票虽然不存在,但是我们不买,依旧是0。

如果不想这么复杂的话,我们可以规定买入股票的时候,算一次完整的交易。此时我们发现f[i][0][1]是不合法的了。因为既然有股票,交易次数就不是0了。

(3)代码

规定卖出算一次交易

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10,k=110;
int f[N][k][2],w[N];
int n,m;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++)scanf("%d",w+i);memset(f,0xcf,sizeof f);f[0][0][0]=0;for(int i=1,minv = 1e6;i<=n;i++){f[i][0][0]=0;minv=min(minv,w[i]);f[i][0][1]=-minv;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){f[i][j][0]=max(f[i-1][j][0],f[i-1][j-1][1]+w[i]);f[i][j][1]=max(f[i-1][j][1],f[i-1][j][0]-w[i]);}}int res=0;for(int i=0;i<=m;i++)res=max(f[n][i][0],res); cout<<res<<endl;return 0;
}

规定买入算一次交易

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10,k=110;
int f[N][k][2],w[N];
int n,m;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++)scanf("%d",w+i);memset(f,0xcf,sizeof f);for(int i=0;i<=n;i++)f[i][0][0]=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1]+w[i]);f[i][j][1]=max(f[i-1][j][1],f[i-1][j-1][0]-w[i]);}}int res=0;for(int i=0;i<=m;i++)res=max(f[n][i][0],res); cout<<res<<endl;return 0;
}

相关文章:

vue组件render函数中作用域插槽使用方式

背景: 父组件使用render函数写的,子组件的书写方式随意,想在父组件中使用子组件时写一个作用域插槽. 子组件ChildRender export default {name: ChildRender,props: {msg: String},render(h) {return h(div, [h(div, this.$scopedSlots.file(aaaa,bbbb)),])} }App.js组件(父…...

ChatPDF代码解读2

这段代码定义了一个名为`ChatPDF`的类,它结合了文本相似性模型和生成模型,用于处理和生成基于特定文档语料库的自然语言回答。以下是对代码的详细解读: 1. **导入依赖**:代码开始处导入了多个Python库,包括`argparse`(命令行参数解析)、`hashlib`(哈希函数)、`os`(操…...

PHP中的超全局变量及其作用

PHP中的超全局变量及其作用 在PHP编程中&#xff0c;超全局变量是一类非常特殊的变量&#xff0c;它们可以在脚本的任何地方&#xff0c;包括函数或方法内部&#xff0c;无需任何特殊的声明或调用&#xff0c;即可直接访问。这些变量是PHP预先定义好的&#xff0c;它们提供了对…...

git切换分支时,该分支的修改被带到另一个分支

原因:新建的文件没有纳入版本管理,所以会被带到切换的分支。 解决方法:新创建一个分支,如feature2,然后把文件commit到该分支。然后再切换到目标分支。这样就不会把新的文件带到切换的分支了。 参考: https://blog.csdn.net/weixin_42436131/article/details/100043976...

Docker(十四)-Docker四种网络模式

Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看:none模式,使用--net=none指定,该模式关闭了容器的网络功能。 host模式,使用--net=host指定,容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 bridge模式,使用…...

k8s Java 项目替换 jar 中的 class 文件

背景紧急需求,客户需要立马上线 docker 包体积过大,远程不稳定,文件发不过去 单点修改,风险低步骤 1. 获取 pod 所在宿主机 podonhost kubectl -n $namespance get pods -owide | grep $podname | grep Running2. 获取 pod 的容器 cid kubectl -n $namespance describe po …...

第四十六章 动态规划——状态机模型

第四十六章 动态规划——状态机模型一、通俗理解状态机DP1、什么是状态机2、什么是状态机DP二、例题1、AcWing 1049. 大盗阿福&#xff08;1&#xff09;问题&#xff08;2&#xff09;分析a.状态定义b.状态转移c.循环设计d.初末状态&#xff08;3&#xff09;代码2、AcWing 10…...

Idea中指定xml文件失效

目录一、&#x1f407; 项目场景&#xff1a;二、&#x1f407; 问题描述三、&#x1f407; 原因分析&#xff1a;四、&#x1f407; 解决方案&#xff1a;一、&#x1f407; 项目场景&#xff1a; 最近狮子在搞一个项目&#xff0c;需要用到数据库多表查询&#xff0c;所以在…...

【华为上机真题】工号不够用咋办

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…...

【蓝桥云课】大整数相加与相乘——字符串模拟

一、大整数相加 思路分析&#xff1a; 输入两个整数a1456、b789&#xff0c;输出两个整数相加的结果。 ①将两个整数翻转 个位十位百位千位a6541b9870 ②相加计算&#xff0c;逢十进一 a0b06915a_0b_06915a0​b0​6915&#xff08;进1留5&#xff09; a1b158114a_1b_158114a…...

泊松过程与排队论

全国同理:随机过程随机会过 ......唉 你说热统,他为什么要搭配着随机过程一起学 ......唉 你说数模比赛 为什么不能白送一个奖牌小摘要泊松过程泊松过程来到间隔与等待时间的分布来到时刻的条件分布M/G/1 忙期非齐次泊松过程复合泊松过程条件泊松过程排队系统输入常见的输入分布…...

告别3D-DNA试试chromap和yahs做Hi-C辅助组装吧

之前使用的是3D-DNA流程做Hi-C的辅助组装&#xff0c;它的最大优势就是输出结果可以对接下游的JBAT(juicerbox with Assembly Tools)进行手动矫正。然而它点缺陷也很明显&#xff0c;处理速度不够快&#xff0c;且对植物的优化不行&#xff0c;同时目前许久不更新了。 最近我发…...

Kettle(9):排序记录组件

1 组件介绍 排序组件可以将Kettle数据流中的数据进行排序,可以指定升序、还是降序排列 2 需求 使用Kettle将t_user表中的用户数据,按照年龄升序排序,并将排序后的数据装载到Excel 3 构建Kettle数据流图 效果图...

LVS+keepalived(双主)+Nginx实现高可用负载均衡

#为什么采用双主架构&#xff1a; 单主架构只有一个keepalived对外提供服务&#xff0c;该主机长期处于繁忙状态&#xff0c;而另一台主机却很空闲&#xff0c;利用率低下 #双主架构的优点&#xff1a; 即将两个或以上VIP分别运行在不同的keepalived服务器&#xff0c;以实现…...

力扣 2299. 强密码检验器 II

题目 如果一个密码满足以下所有条件&#xff0c;我们称它是一个 强 密码&#xff1a; 它有至少 8 个字符。 至少包含 一个小写英文 字母。 至少包含 一个大写英文 字母。 至少包含 一个数字 。 至少包含 一个特殊字符 。特殊字符为&#xff1a;“!#$%^&*()-” 中的一个。…...

[GWCTF 2019]枯燥的抽奖

目录 信息收集 知识回顾 解题思路 信息收集 查看源码&#xff0c;发现check.php <?php #这不是抽奖程序的源代码&#xff01;不许看&#xff01; header("Content-Type: text/html;charsetutf-8"); session_start(); if(!isset($_SESSION[seed])){ $_SESSIO…...

初入职场的我认识到linux的重要性

先自我介绍下&#xff0c;我是一名普通的软件工程专业的本科毕业生&#xff0c;今年刚毕业&#xff0c;软件工程的课程超级多&#xff0c;有程序设计基础、面向对象程序设计、软件工程导论、离散结构、数据结构与算法、计算机系统基础、操作系统、数据库概论、网络及其计算等等…...

数据库系统概述

文章目录一、数据、数据库、数据库管理系统、数据库系统1.数据2.数据库&#xff08;DB&#xff09;3.数据库管理系统&#xff08;DBMS&#xff09;1&#xff09;数据定义2&#xff09;数据组织、存储和管理3&#xff09;数据操纵4&#xff09;事务管理和运行管理5&#xff09;数…...

【算法基础】快速排序(分治思想)

一、快速排序原理 1. 算法介绍 快速排序算法通过多次比较和交换来实现排序,其排序流程如下: (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(记左端为L,最右端为R) 分界点的选取有如下四种方法:(1)q[L];(2)q[(L+R)/2];(3)q[R];(4)随机选取 (2)…...

JavaEE-初识网络

目录一、局域网二、广域网三、网络通信基础3.1 IP地址3.2 端口号3.3 协议四、协议分层五、封装和分用一、局域网 局域网&#xff0c;网络种类&#xff0c;覆盖范围一般是方圆几千米之内&#xff0c;其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局…...

【23】C语言 | 初阶结构体

目录 1、结构的基础知识 2、结构成员的类型 3、结构体初始化 4、结构体的访问 5、结构体传参 1、结构的基础知识 结构是这些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 数组&#xff1a;一组相同类型的元素的集合 结构体&#xff1a;也是…...

【笔记】SemGCN

一. 论文总结 1.1 核心贡献 提出了一种改进的图卷积操作&#xff0c;称为语义图卷积(SemGConv)&#xff0c;它源自cnn。其关键思想是学习图中暗示的边的信道权值&#xff0c;然后将它们与核矩阵结合起来。这大大提高了图卷积的能力。其次&#xff0c;我们引入了SemGCN&#x…...

Python机器学习:一元回归

→\rightarrow→回归效果评价 &#x1f315; 一元回归 一元回归主要研究一个自变量和一个因变量之间的关系&#xff0c;而这个自变量和因变量之间的关系又可分为线性回归和非线性回归。 ⭐️ 一元线性回归分析两个变量之间的线性关系&#xff0c;如ykxbykxbykxb中xxx和yyy就是…...

四轮两驱小车(三):STM32驱动MPU6050进行转弯

前言&#xff1a; 寒假已经过了一半了&#xff0c;前段时间跟学弟一起从零开始搞了一下深度学习&#xff0c;现在才想起来这个系列还没有更完。本篇博客主要介绍一下这个小车转直角弯的神器----MPU6050 MPU6050介绍&#xff1a; 我所采用的MPU6050是某宝上十几块钱的这种&…...

C++:类的static成员,友元和构造函数初始化列表

目录 一.类的构造函数的初始化列表 1.类的构造函数初始化列表的引入和介绍 2.初始化列表用于类的类对象成员的拷贝构造函数的调用 3.初始化列表的使用细则 4.使用初始化列表的一个注意事项 二.explicit关键字 三.C类的static成员 1.类中static修饰的成员变量 2.类中st…...

用友U8和旺店通企业版淘宝奇门单据接口集成

用友U8和旺店通企业奇门单据接口集成对接系统&#xff1a;旺店通企业奇门慧策最先以旺店通ERP切入商家核心管理痛点——订单管理&#xff0c;之后围绕电商经营管理中的核心管理诉求&#xff0c;先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的产品线从旺店通E…...

Java-黑马Java学习作业-day11集合学生管理系统

学习视频链接&#xff1a;https://www.bilibili.com/video/BV17F411T7Ao 文章目录题目1-将数组存放在集合中题目2-教师信息查看题目3-员工信息删改查操作题目4&#xff08;综合&#xff09;-图书管理系统题目1-将数组存放在集合中 现有如下字符串元素&#xff1a;[“aaa”, “…...

【Linux】冯诺依曼体系结构与操作系统概念理解

&#x1f451;作者主页&#xff1a;安 度 因 &#x1f3e0;学习社区&#xff1a;StackFrame &#x1f4d6;专栏链接&#xff1a;Linux 文章目录一、前言二、冯诺依曼体系结构1、体系简述2、内存的重要性3、硬件方案解释软件行为4、体系结构中的数据流动5、拓展三、操作系统简述…...

protegeproject/mapping-masterPublic

protegeproject/mapping-masterPublicWatch 10 Fork 7Fork your own copy of protegeproject/mapping-masterStar 44CodeIssues15Pull requests3ActionsProjectsWikiSecurityInsightsMappingMasterDSL编辑新页面马丁奥康纳编辑了此页面 on Oct 29, 2020 85 修订页面4家Mapping…...

大数据分析案例-基于随机森林算法构建人口普查分析模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

【数据结构和算法】认识线性表中的链表,并实现单向链表

本文接着上文&#xff0c;上文我们认识了线性表的概念&#xff0c;并实现了静态、动态顺序表。接下来我们认识一个新概念链表。并实现单向链表的各种操作。顺序表还有不明白的看这一篇文章 (13条消息) 【数据结构和算法】实现线性表中的静态、动态顺序表_小王学代码的博客-CSDN…...

2023-1-28

具有给定数值的最小字符串 题目描述 小写字符 的 数值 是它在字母表中的位置&#xff08;从 1 开始&#xff09;&#xff0c;因此 a 的数值为 1 &#xff0c;b 的数值为 2 &#xff0c;c 的数值为 3 &#xff0c;以此类推。 字符串由若干小写字符组成&#xff0c;字符串的数…...

Linux_常见命令

1.ls ls -l 列出隐藏文件&#xff0c;并显示10项权限,类似如同下图 在部分发行版本的linux下&#xff0c;ll等同于ls -l 首先&#xff0c;第一列为-则代表着这一列是文件&#xff0c; 第一列为d则代表这一列为目录 除了第一位&#xff0c;那么其他还有9位&#xff0c;分为3组…...

【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…

能一个人走的路别抱有任何期待&#xff0c;死不了 文章目录一、关于文件的重新认识二、语言和系统级的文件操作&#xff08;语言和系统的联系&#xff09;1.C语言文件操作接口&#xff08;语言级别&#xff09;1.1 文件的打开方式1.2 文件操作的相关函数1.3 细节问题2.系统级文…...

ffmpeg无损裁剪、合并视频

我用的版本是 ffmpeg version git-2020-06-23-ce297b4 官方文档 https://ffmpeg.org/ffmpeg-utils.html#time-duration-syntax 时间格式 [-][HH:]MM:SS[.m...] 或 [-]S[.m...][s|ms|us]裁剪视频 假设需要裁剪视频aaa.mp4&#xff0c;第5秒到第15秒 ffmpeg -ss 5 -to 15 -i…...

ATAC-seq分析:Annotating Peaks(9)

1. 注释开放区域 将已识别的无核小体区域与基因组特征&#xff08;如基因和增强子&#xff09;相关联通常很有趣。 一旦注释到基因或增强子的基因&#xff0c;我们就可以开始将 ATACseq 数据与这些基因的特征相关联。 &#xff08;功能注释、表达变化、其他表观遗传状态&#x…...

蓝桥杯刷题015——最少刷题数(二分法+前缀和)

问题描述 小蓝老师教的编程课有 N 名学生, 编号依次是 1…N 。第 i 号学生这学期刷题的数量是 Ai​ 。 对于每一名学生, 请你计算他至少还要再刷多少道题, 才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。 输入格式 第一行包含一个正整数 N 。 第二行包含 N 个整数:…...

Linux——进程

目录 冯诺依曼体系结构 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 进程 基本概念 描述进程-PCB task_struct-PCB的一种 task_ struct内容分类 组织进程 查看进程 通过系统调用获取进程…...

Junit单元测试框架【基础篇】

Junit单元测试框架【基础篇】&#x1f34e;一.Junit单元测试框架&#x1f352;1.1 注解&#x1f352;1.2 断言&#x1f352;1.3 用例执行顺序&#x1f352;1.4 测试套件&#x1f349;1.4.1 指定类&#x1f349;1.4.1 指定包&#x1f352;1.5 参数化&#x1f349;1.5.1 单参数&a…...

高通平台开发系列讲解(WIFI篇)什么是WLAN无线局域网

文章目录 一、什么是WLAN1.1、WLAN发展史1.2、WLAN工作频段二、高通相关文件2.1、配置文件2.2、开机启动2.3、wpa_supplicant沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文将基于高通平台介绍什么是无线局域网。 一、什么是WLAN 在WLAN领域被大规模推广和商用的是…...

JavaScript 变量

JavaScript 变量 变量是什么? 变量是计算机中用来存储数据的“容器”&#xff0c;它可以让计算机变得有记忆&#xff0c;通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】&#xff08;数据&#xff09; JavaScript 变量 与代数一样&#xff0c;JavaScript 变量…...

C语言进阶——文件管理

每当我们写好一段代码运行结束之后&#xff0c;再次运行的时候就会发现&#xff0c;之前在终端上输入的数据都会消失&#xff0c;那么如何把之前输入的数据保存下来呢&#xff1f; 我们一般把数据持久化的方式有把数据存放在磁盘文件中、存放到数据库。打印等方式进行保存。 …...

[Rust笔记] 规则宏的“卫生保健”

规则宏代码的“卫生保健”规则宏mbe即是由macro_rules!宏所定义的宏。它的英文全称是Macro By Example。相比近乎“徒手攀岩”的Cpp模板元编程&#xff0c;rustc提供了有限的编译时宏代码检查功能&#xff08;名曰&#xff1a;Mixed Hygiene宏的混合保健&#xff09;。因为rust…...

芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点

💡该教程为改进进阶指南,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀💡本篇文章 基于 YOLOv5、YOLOv7芒果改进YOLO系列:芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点、…...

Java---微服务---RabbitMQ部署

RabbitMQ部署1.单机部署1.1.下载镜像1.2.安装MQ1.3访问管理端2.集群部署2.1.集群分类2.2.设置网络1.单机部署 我们在Centos7虚拟机中使用Docker来安装&#xff0c;如未安装dockr&#xff0c;请参考《Centos7安装Docker》 1.1.下载镜像 方式一&#xff1a;在线拉取 docker …...

别总写代码,这130个网站比涨工资都重要

今天推荐一些学习资源给大家&#xff0c;当然大家可以留言评论自己发现的优秀资源地址 搞学习 找书籍 冷知识 / 黑科技 写代码 资源搜索 小工具 导航页&#xff08;工具集&#xff09; 看视频 学设计 搞文档 找图片 搞学习 TED&#xff08;最优质的演讲&#xff09;&#xff1…...

Python 类方法简记

文章目录前言必须实例化的类方法使用静态装饰器的类方法使用类装饰器的类方法省流版本ref:前言 Python 的类可以有特定的方法。下面是三种设计类方法的模板。 class A(object):a adef foo1(self, name):print hello, namestaticmethoddef foo2(name):print hello, nameprint…...

分享136个ASP源码,总有一款适合您

ASP源码 分享136个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 136个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/11db_K2QXns5pm8vMZBVPSw?pwds0lb 提取码&#x…...

【Python百日进阶-Web开发-Peewee】Day241 - Peewee 安装和测试、快速开始

文章目录 一、安装和测试1.1 使用 git 安装1.2 运行测试1.3 可选依赖项1.4 关于 SQLite 扩展的注意事项二、快速开始2.1 模型定义2.2 存储数据2.3 检索数据2.3.1 获取单条记录2.3.2 记录列表2.3.3 排序2.3.4 组合过滤器表达式2.3.5 聚合和预取2.3.6 SQL 函数2.4 数据库2.4.1 使…...

手机提供GMS支持(适用安卓和鸿蒙系统)

手机提供GMS支持 - 适用安卓和鸿蒙系统前言方式1&#xff1a;安装GMS套件&#xff08;不推荐&#xff09;方式2&#xff1a;安装OurPlay&#xff08;推荐&#xff09;方式3&#xff1a;安装Gspace&#xff08;推荐&#xff09;前言 本文提供多种为手机&#xff08;安卓和鸿蒙系…...

[JavaEE]线程池

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录: 1. 线程池是什么? 2. 线程池的实现原理 3. 标准…...

Redis缓存污染了怎么办?

我们应用Redis缓存时&#xff0c;如果能缓存会被反复访问的数据&#xff0c;那就能加速业务应用的访问&#xff0c;但是&#xff0c;如果发生了缓存污染&#xff0c;那么&#xff0c;缓存对业务应用的加速作用就减少了。 在一些场景下&#xff0c;有些数据被访问的次数非常小&…...

特斯拉印证成本仍是工业制造取胜的关键,反证中国制造的优势

近20年来&#xff0c;业界对于工业制造的竞争优势开始逐渐偏离成本控制&#xff0c;然而如今特斯拉在全球的成功却正在印证着工业制造的成功仍然在于成本&#xff0c;成本才是工业制造取胜的关键&#xff0c;其他任何被吹嘘的个性化、创新等全都是骗人的把戏。特斯拉的成功曾被…...

工具及方法 - 斗地主技巧

斗地主游戏起源 斗地主是流行于湖北武汉、汉阳一带的一种扑克游戏。游戏需由3个玩家进行&#xff0c;用一副54张牌(连鬼牌)&#xff0c;其中一方为地主&#xff0c;其余两家为另一方&#xff0c;双方对战&#xff0c;先出完牌的一方获胜。斗地主起源于湖北武汉汉阳一带&#xf…...

BIO NIO AIO IO多路复用的区别

1、基础概念 1.1、阻塞非阻塞和同步异步的结合 下面通过例子来具体说明&#xff1a; 同步阻塞&#xff1a; 小明一直盯着下载进度条&#xff0c;到100%的时候完成。 同步体现在&#xff1a;小明关注下载进度条并等待完成通知。&#xff08;可以看成同步是我主动关注任务完成的…...

数学建模——降维算法

降维 降维的意义 降低无效、错误数据对建模的影响&#xff0c;提高建模的准确性少量切具有代表性的数据将大幅缩减挖掘所需的时间降低存储数据的成本 需要降维的情况 维度灾难。很难有一个简洁的模型在高维空间中依旧具有鲁棒性&#xff0c;而随着模型复杂度的增加&#xf…...

我这10年的“搞站”路

我叫老牛&#xff0c;是高中室友给起的&#xff0c;原因很简单&#xff0c;我在8人寝室年龄排第六&#xff0c;四川话“老6”和“老牛”读音相仿。 后来我就把我的qq昵称改成了“L.N.”&#xff0c;我接受了这个称呼&#xff0c;因为自我审视&#xff0c;性格的确有执拗的一面&…...

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

CTFHUB-技能树-Web前置技能-文件上传&#xff08;前端验证—MIME绕过、00截断、00截断-双写后缀&#xff09; 文章目录 CTFHUB-技能树-Web前置技能-文件上传&#xff08;前端验证—MIME绕过、00截断、00截断-双写后缀&#xff09;前端验证—MIME绕过有关MIMEMIME的作用 解题时有…...

腾讯EdgeOne产品测评体验—更快更强更安全,安全我选EdgeOne

腾讯EdgeOne产品测评体验—更快更强更安全&#xff0c;安全我选EdgeOne 王婆的瓜可甜&#xff1f; 自 23 年 8 月份 EdgeOne 开放订阅套餐后&#xff0c;腾讯云用户使用 EdgeOne 来为自己网站进行加速和防护的站点数量&#xff0c;呈现爆发式增长趋势。 金融服务业受到的 Web…...

Linux下kafka单机版搭建

1.zookeeper的安装 这里使用3.6.4版本 前提&#xff1a;服务器已经安装了jdk&#xff0c;zookeeper运行需要jdk环境 1.1创建放zookeeper的目录 #创建目录 mkdir -p /usr/local/zookeeper#赋予权限 chmod 777 /usr/local/zookeeper1.2安装包的下载 #这里推荐去官网下载 https:…...

【Python-装饰器】

Python-装饰器 ■ 简介■ 装饰器的一般写法&#xff08;闭包写法&#xff09;■ 装饰器的语法 (outer写法) ■ 简介 装饰器其实是一种闭包&#xff0c; 功能就是在不破坏目标函数原有的代码和功能的前提下为目标函数增加新功能。 ■ 装饰器的一般写法&#xff08;闭包写法&am…...

【24年物联网华为杯】赛题分析与初步计划

赛事介绍 官网链接&#xff1a;2024 年全国大学生物联网设计竞赛 (sjtu.edu.cn) 含金量&#xff1a;属于A类赛事 &#xff08;注意&#xff1a;很多搜索结果的序号是按照选入时间排列的&#xff0c;与含金量无关&#xff0c;华为杯是23年选入的&#xff09; Kimi Chat: 全国…...