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

NO.76十六届蓝桥杯备战|数据结构-单调栈|发射站|Largest Rectangle in a Histogram(C++)

  1. 什么是单调栈?
    单调栈,顾名思义,就是具有单调性的栈。它依旧是⼀个栈结构,只不过⾥⾯存储的数据是递增或者递减的。这种结构是很容易实现的(如下⾯的代码),但重点是维护⼀个单调栈的意义是什么
#include <iostream>  
#include <stack>  
using namespace std;  
const int N = 3e6 + 10;  
int a[N], n;  
void test1()  
{  stack<int> st; // 维护⼀个单调递增的栈  for(int i = 1; i <= n; i++)  {  // 栈⾥⾯⼤于等于 a[i] 的元素全部出栈  while(st.size() && st.top() >= a[i]) st.pop();  st.push(a[i]);  }  
}  
void test2()  
{  stack<int> st; // 维护⼀个单调递减的栈  for(int i = 1; i <= n; i++)  {  // 栈⾥⾯⼩于等于 a[i] 的元素全部出栈  while(st.size() && st.top() <= a[i]) st.pop();  st.push(a[i]);  }  
}
  1. 单调栈解决的问题
    单调栈能帮助我们解决以下四个问题:
  • 寻找当前元素左侧,离它最近,并且⽐它⼤的元素在哪;
  • 寻找当前元素左侧,离它最近,并且⽐它⼩的元素在哪;
  • 寻找当前元素右侧,离它最近,并且⽐它⼤的元素在哪;
  • 寻找当前元素右侧,离它最近,并且⽐它⼩的元素在哪。
    虽然是四个问题,但是原理是⼀致的。因此,只要解决⼀个,举⼀反三就可以解决剩下的⼏个
  1. 寻找当前元素左侧,离它最近,并且⽐它⼤的元素在哪
    从左往右遍历元素,构造⼀个单调递减的栈。插⼊当前位置的元素的时:
  • 如果栈为空,则左侧不存在⽐当前元素⼤的元素;
  • 如果栈⾮空,插⼊当前位置元素时的栈顶元素就是所找的元素。
    注意,因为我们要找的是最终结果的位置。因此,栈⾥⾯存的是每个元素的下标
输⼊:  
9 1  
4 10 6 3 3 15 21 8  
输出:  
0 0 0 3 4 4 0 0 8
#include <iostream>  
#include <stack>  
using namespace std;  
const int N = 3e6 + 10;  
int a[N], n;  
int ret[N];  
void test()  
{  stack<int> st; // 维护⼀个单调递减的栈for(int i = 1; i <= n; i++)  {  // 栈⾥⾯⼩于等于 a[i] 的元素全部出栈  while(st.size() && a[st.top()] <= a[i]) st.pop();  // 此时栈顶元素存在,栈顶元素就是所求结果  if(st.size()) ret[i] = st.top();  st.push(i); // 存的是下标  }  for(int i = 1; i <= n; i++)  {  cout << ret[i] << " ";  }  cout << endl;  
}  int main()  
{  cin >> n;  for(int i = 1; i <= n; i++) cin >> a[i];  test(); cout << endl;  return 0;  
}
  1. 寻找当前元素左侧,离它最近,并且⽐它⼩的元素在哪
    从左往右遍历元素,构造⼀个单调递增的栈。插⼊当前位置的元素的时:
  • 如果栈为空,则左侧不存在⽐当前元素⼩的元素;
  • 如果栈⾮空,插⼊当前位置元素时的栈顶元素就是所找的元素。
    注意,因为我们要找的是最终结果的位置。因此,栈⾥⾯存的是每个元素的下标
输⼊:  
9 1  
4 10 6 3 3 15 21 8
输出:  
0 1 2 2 1 1 6 7 6
#include <iostream>  
#include <stack>  
using namespace std;  
const int N = 3e6 + 10;  
int a[N], n;  
int ret[N];  
void test()  
{  stack<int> st; // 维护⼀个单调递增的栈  for(int i = 1; i <= n; i++)  {  // 栈⾥⾯⼤于等于 a[i] 的元素全部出栈  while(st.size() && a[st.top()] >= a[i]) st.pop();  // 此时栈顶元素存在,栈顶元素就是所求结果  if(st.size()) ret[i] = st.top();  st.push(i); // 存的是下标  }  for(int i = 1; i <= n; i++)  {  cout << ret[i] << " ";  }  cout << endl;  
}  int main()  
{  cin >> n;  for(int i = 1; i <= n; i++) cin >> a[i];  test(); cout << endl;return 0;  
}

针对其余两种情况,我们仅需逆序遍历数组即可。
5. 寻找当前元素右侧,离它最近,并且⽐它⼤的元素在哪
从右往左遍历元素,构造⼀个单调递减的栈。插⼊当前位置的元素的时:

  • 如果栈为空,则左侧不存在⽐当前元素⼤的元素;
  • 如果栈⾮空,插⼊当前位置元素时的栈顶元素就是所找的元素。
    注意,因为我们要找的是最终结果的位置。因此,栈⾥⾯存的是每个元素的下标
输⼊:  
9 1  
4 10 6 3 3 15 21 8  
输出:  
2 3 7 7 7 7 8 0 0
#include <iostream>  
#include <stack>  
using namespace std;  
const int N = 3e6 + 10;  
int a[N], n;  
int ret[N];  
void test()  
{  stack<int> st; // 维护⼀个单调递减的栈for(int i = n; i >= 1; i--)  {  // 栈⾥⾯⼩于等于 a[i] 的元素全部出栈  while(st.size() && a[st.top()] <= a[i]) st.pop();  // 此时栈顶元素存在,栈顶元素就是所求结果  if(st.size()) ret[i] = st.top();  st.push(i); // 存的是下标  }  for(int i = 1; i <= n; i++)  {  cout << ret[i] << " ";  }  cout << endl;  
}  
int main()  
{  cin >> n;  for(int i = 1; i <= n; i++) cin >> a[i];  test(); cout << endl;  return 0;  
}
  1. 寻找当前元素右侧,离它最近,并且⽐它⼩的元素在哪
    从右往左遍历元素,构造⼀个单调递增的栈。插⼊当前位置的元素的时:
  • 如果栈为空,则左侧不存在⽐当前元素⼩的元素;
  • 如果栈⾮空,插⼊当前位置元素时的栈顶元素就是所找的元素。
    注意,因为我们要找的是最终结果的位置。因此,栈⾥⾯存的是每个元素的下标
输⼊:  
9 1  
4 10 6 3 3 15 21 8
输出:  
0 5 4 5 0 0 9 9 0
#include <iostream>  
#include <stack>  
using namespace std;  
const int N = 3e6 + 10;  
int a[N], n;  
int ret[N];  
void test()  
{  stack<int> st; // 维护⼀个单调递增的栈  for(int i = n; i >= 1; i--)  {  // 栈⾥⾯⼤于等于 a[i] 的元素全部出栈  while(st.size() && a[st.top()] >= a[i]) st.pop();  // 此时栈顶元素存在,栈顶元素就是所求结果  if(st.size()) ret[i] = st.top();  st.push(i); // 存的是下标  }  for(int i = 1; i <= n; i++)  {  cout << ret[i] << " ";  }  cout << endl;  
}  int main()  
{  cin >> n;  for(int i = 1; i <= n; i++) cin >> a[i];  test(); cout << endl;return 0;  
}
  • 找左侧,正遍历;找右侧,逆遍历;
  • ⽐它⼤,单调减;⽐它⼩,单调增。
P5788 【模板】单调栈 - 洛谷

右侧离它最近并且⽐它⼤的元素:

  • 逆序遍历数组;
  • 构造⼀个单调递减的栈;
  • 进栈时,栈顶元素就是最终结果
#include <bits/stdc++.h>
using namespace std;const int N = 3e6 + 10;int n;
int a[N];
int ret[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];stack<int> st;for (int i = n; i >= 1; i--){while (st.size() && a[st.top()] <= a[i]) st.pop();if (st.size()) ret[i] = st.top();st.push(i);}for (int i = 1; i <= n; i++) cout << ret[i] << " ";cout << endl;return 0;
}
P1901 发射站 - 洛谷
#include <bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 1e6 + 10;int n;
LL h[N], v[N];
LL sum[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n;for (int i = 1; i <= n; i++) cin >> h[i] >> v[i];//找左边stack<int> st;for (int i = 1; i <= n; i++){//递减栈while (st.size() && h[st.top()] <= h[i]) st.pop();if (st.size()){sum[st.top()] += v[i];}st.push(i);}//找右边while (st.size()) st.pop(); //清空for (int i = n; i >= 1; i--){//递减栈while (st.size() && h[st.top()] <= h[i]) st.pop();if (st.size()){sum[st.top()] += v[i];}st.push(i);}LL ret = 0;for (int i = 1; i <= n; i++) ret = max(ret, sum[i]);cout << ret << endl;return 0;
}
SP1805 HISTOGRA - Largest Rectangle in a Histogram - 洛谷

![[Pasted image 20250408143205.png]]

对于x位置⼦矩阵,找到左侧离它最近并且⽐它⼩的位置y ,那么[x+1, y]之间就是该矩阵能到达的左端。
同理再找到右侧离它最近并且⽐它⼩的位置z ,那么[y, z - 1]之间就是该矩阵能到达的右端。
对于每⼀个⼦矩阵,求出它向左以及向右能延伸的最⼤⻓度即可

#include <bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 1e5 + 10;int n;
LL h[N];
LL x[N], y[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);while (cin >> n, n){for (int i = 1; i <= n; i++) cin >> h[i];//找左边stack<int> st;for (int i = 1; i <= n; i++){//单调递增栈while (st.size() && h[st.top()] >= h[i]) st.pop();if (st.size()) x[i] = st.top();else x[i] = 0;st.push(i);}//找右边while (st.size()) st.pop();for (int i = n; i >= 1; i--){//单调递增栈while (st.size() && h[st.top()] >= h[i]) st.pop();if (st.size()) y[i] = st.top();else y[i] = n + 1;st.push(i);}LL ret = 0;for (int i = 1; i <= n; i++){ret = max(ret, h[i] * (y[i] - x[i] - 1));        }cout << ret << endl;}return 0;
}

相关文章:

NO.76十六届蓝桥杯备战|数据结构-单调栈|发射站|Largest Rectangle in a Histogram(C++)

什么是单调栈&#xff1f; 单调栈&#xff0c;顾名思义&#xff0c;就是具有单调性的栈。它依旧是⼀个栈结构&#xff0c;只不过⾥⾯存储的数据是递增或者递减的。这种结构是很容易实现的&#xff08;如下⾯的代码&#xff09;&#xff0c;但重点是维护⼀个单调栈的意义是什么 …...

消息队列(Message Queue)简介

消息队列是一种进程间通信&#xff08;IPC&#xff09;机制&#xff0c;允许不同进程通过发送和接收消息进行 异步通信。它的核心特点包括&#xff1a; 解耦&#xff1a;消息队列解耦了生产者和消费者&#xff0c;简化了系统设计。 持久化存储&#xff1a;支持将消息存储在队列…...

动/静态库

1.先了解一下动静态库 上图可以看出来静态库就是由一堆进过链接阶段的.o文件组成的.a文件。在这里必须要强调的是库文件格式一定是libxxx.a/so在你进行路径查找使用的时候要去掉lib和后缀使用&#xff01; 静态库 概念&#xff1a;在程序编译链接阶段&#xff0c;其代码被完整…...

KWDB创作者计划—边缘计算:从概念到落地的技术解读

引言 随着物联网&#xff08;IoT&#xff09;和人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;数据量呈爆炸式增长&#xff0c;传统的云计算架构逐渐暴露出延迟高、带宽占用大等问题。边缘计算作为一种新兴的分布式计算范式&#xff0c;正在改变数据处理的方式。本…...

ubuntu根文件系统通过uMTP-Responder实现usb的MTP功能

实现mtp设备 添加服务 /home/flynn/firfly_rootfs/lib/systemd/system/adbd.service #start [Unit] Description Adbd for linux Beforerockchip.service[Service] Typeforking ExecStart/etc/init.d/adbd.sh start ExecStop/etc/init.d/adbd.sh stop ExecReload/etc/init.d…...

8、nRF52xx蓝牙学习(boards.h文件学习)

boards.h文件的代码如下&#xff1a; #ifndef BOARDS_H #define BOARDS_H#include "nrf_gpio.h" #include "nordic_common.h"#if defined(BOARD_NRF6310)#include "nrf6310.h" #elif defined(BOARD_PCA10000)#include "pca10000.h" #…...

辛格迪客户案例 | 河南宏途食品实施电子合约系统(eSign)

01 河南宏途食品有限公司&#xff1a;食品行业的数字化践行者 河南宏途食品有限公司&#xff08;以下简称“宏途食品”&#xff09;作为国内食品行业的创新企业&#xff0c;专注于各类食品的研发、生产和销售。公司秉承“质量为先、创新驱动、服务至上”的核心价值观&#xff…...

webrtc-stats

1. RTP 相关统计 1.1 inbound-rtp (接收端统计) 接收到的 RTP 流统计信息&#xff0c;包含以下关键指标&#xff1a; bytesReceived: 接收到的字节总数packetsReceived: 接收到的数据包总数packetsLost: 丢失的数据包数量jitter: 数据包到达时间的抖动&#xff08;毫秒&…...

【LangChain框架组成】 LangChain 技术栈的模块化架构解析

目录 整体架构概述 整体架构层级划分 模块详细解析 1. 部署与服务层&#xff08;LangServe & Deployments&#xff09; 2. 应用模板层&#xff08;Templates & Committee Architectures&#xff09; 3. 核心功能层&#xff08;LangChain&#xff09; 4. 社区扩展…...

RNN、LSTM、GRU汇总

RNN、LSTM、GRU汇总 0、论文汇总1.RNN论文2、LSTM论文3、GRU4、其他汇总 1、发展史2、配置和架构1.配置2.架构 3、基本结构1.神经元2.RNN1. **RNN和前馈网络区别&#xff1a;**2. 计算公式&#xff1a;3. **梯度消失:**4. **RNN类型**:&#xff08;查看发展史&#xff09;5. **…...

用TypeScript和got库编写爬虫程序指南

用TypeScript和got库写一个爬虫程序。首先&#xff0c;我得确认他们对TypeScript和Node.js的基础了解&#xff0c;可能他们已经有了一些JS的经验&#xff0c;但不确定。接下来&#xff0c;需要明确爬虫的目标&#xff0c;比如要爬取的网站、需要的数据类型以及处理方式。 首先…...

使用 Spring Boot 快速构建企业微信 JS-SDK 权限签名后端服务

使用 Spring Boot 快速构建企业微信 JS-SDK 权限签名后端服务 本篇文章将介绍如何使用 Spring Boot 快速构建一个用于支持企业微信 JS-SDK 权限校验的后端接口&#xff0c;并提供一个简单的 HTML 页面进行功能测试。适用于需要在企业微信网页端使用扫一扫、定位、录音等接口的…...

【软考-架构】13.2、软件层次风格

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 2、层次架构风格两层C/S架构三层C/S架构三层B/S架构富互联网应用RIAMVC架构MVP架构MVVM架构 ✨3、面向服务的架构风格SOASOA中应用的关键技术WEB Service企业服务总线ESB …...

Java 进阶-全面解析

目录 异常处理​ 集合框架​ List 集合​ Set 集合​ Map 集合​ 文件与字符集​ IO 流​ 多线程​ 通过继承Thread类创建线程 通过实现Runnable接口创建线程 线程同步示例​ 线程通信示例 网络编程 Java 高级技术 反射机制 动态代理 注解 异常处理​ 在 Java …...

mongodb 创建keyfile

在 MongoDB 中&#xff0c;keyFile 是用于副本集成员间内部认证的密钥文件。它是一个包含随机字符串的文件&#xff0c;所有副本集成员必须使用相同的 keyFile 进行通信。以下是创建和配置 keyFile 的详细步骤。 创建 KeyFile 的步骤 1. 生成随机字符串 使用以下命令生成一个…...

工业4.0时代,RK3562工控机为何成为智慧工位首选?

在制造业数字化转型的浪潮中&#xff0c;智慧车间已成为提升生产效率、降低运营成本的关键战场。作为智慧车间的"神经末梢"&#xff0c;工位机的智能化程度直接影响着整个生产线的运行效率。RK3562工控机凭借其强大的计算性能、稳定的运行表现和丰富的接口配置&#…...

WPF 资源加载问题:真是 XAML 的锅吗?

你的观察很敏锐&#xff01;确实&#xff0c;在 WPF 项目中&#xff0c;.cs 文件主要负责逻辑实现&#xff0c;而资源加载的问题通常跟 XAML&#xff08;以及它背后的 .csproj 配置&#xff09;关系更大。我会围绕这个观点&#xff0c;用 CSDN 博客风格详细解释一下 .cs、XAML …...

5. 深度剖析:Spring AI项目架构与分层体系全解读

1、前言 前面我们已经可以通过简单的方式集成Spring AI进行快速开发了。授人以鱼不如授人以渔&#xff0c;我们还是需要了解Spring AI的项目结构&#xff0c;以及他的一些核心概念。 2、项目结构 我们将Spring AI代码直接fork到我们自己的仓库中。fork的目的是方便我们为了学…...

2025最新数字化转型国家标准《数字化转型管理参考架构》 正式发布

当前&#xff0c;数字化转型是数字时代企业生存和发展的必答题&#xff0c;其根本任务是价值体系优化、创新和重构。数字生产力的飞速发展不仅引发了生产方式的转变&#xff0c;也深刻改变了企业的业务体系和价值模式。 为进一步引导企业明确数字化转型的主要任务和关键着力点…...

蓝桥杯备赛 Day 20 树基础

![[树的基础概念.png]] 树的遍历 二叉树遍历分类 DFS前序遍历 根节点-左儿子-右儿子 DFS中序遍历 左儿子-根节点-右儿子 DFS后序遍历 左儿子-右儿子-根节点 BFS层序遍历![[树的遍历.png]] 代码: #include <bits/stdc.h>using namespace std; const int N20; i…...

清晰易懂的Jfrog Artifactory 安装与核心使用教程

JFrog Artifactory 是企业级二进制仓库管理工具&#xff0c;支持 Maven、Docker、npm 等 30 包格式。本教程将手把手教你完成 安装、配置、核心操作&#xff0c;并指出企业级部署的避坑要点&#xff0c;助你快速搭建私有仓库&#xff01; 一、安装 JFrog Artifactory&#xff0…...

苍穹外卖总结

苍穹外卖学习知识点 整体概括: 学到目前(day10),总体最核心的部分就是CURD各种数据,因为一些接口,前端页面都已经设计好,在实际开发中也应该是这样,重点是在每个不同的业务板块区别出细微不同的业务逻辑 Swagger注解 swagger是一种自动生成接口文档的插件 使用注解,就可以…...

python学智能算法(九)|决策树深入理解

【1】引言 前序学习进程中&#xff0c;初步理解了决策树的各个组成部分&#xff0c;此时将对决策树做整体解读&#xff0c;以期实现深入理解。 各个部分的解读文章链接为&#xff1a; python学智能算法&#xff08;八&#xff09;|决策树-CSDN博客 【2】代码 【2.1】完整代…...

HTTP代理:内容分发战场上的「隐形指挥官」

目录 一、技术本质&#xff1a;流量博弈中的「规则改写者」 二、战略价值&#xff1a;内容分发的「四维升级」 三、实战案例&#xff1a;代理技术的「降维打击」 四、未来进化&#xff1a;代理技术的「认知升级」 五、结语&#xff1a;代理技术的「战略觉醒」 在数字内容爆…...

学习笔记(C++篇)--- Day2

1.类的定义 1.1 类的格式 ①class为类的关键字 ②在类的内容中还可以写函数&#xff0c;具体格式请看示例。 ③为了区分成员变量&#xff0c;一般习惯上成员变量会加一个特殊标识&#xff08;如成员变量前面或者后面加_ 或者 m开头&#xff0c;注意C中这个并不是强制的&#x…...

下载firefox.tar.xz后如何将其加入到Gnome启动器

起因&#xff1a;近期&#xff08;2025-04-07&#xff09;发现firefox公布了130.0 版本&#xff0c;可以对pdf文档进行签名了&#xff0c;想试一下&#xff0c;所以卸载了我的Debian12上的firefox-esr,直接下载了新版本的tar.xz 包。 经过一番摸索&#xff0c;实现了将其加入Gn…...

VSCode英文翻译插件:变量命名、翻单词、翻句子

目录 【var-translate】 【Google Translate】 【code-translator】 【其他插件】 【var-translate】 非常推荐&#xff0c;可以提供小驼峰、大驼峰、下划线、中划线、常量等翻译&#xff0c;Windows下快捷键为Ctrl Shift v 可以整句英文翻译&#xff0c;并且支持多个免费…...

快速高效的MCP Severs

通用AI Agent的瓶颈 最近一直在用MCP协议开发通用智能体。 虽然大模型本身请求比较慢&#xff0c;但是还可以接受。 而最让人沮丧的是&#xff0c;工具效率也不高 比如社区的filesystem&#xff0c;每次只能创建一个目录&#xff0c;生成文件时&#xff0c;如果目录不存在&…...

原子化 CSS 的常见实现框架

原子化 CSS 是一种 CSS 架构方法&#xff0c;其核心思想是将样式拆分为最小粒度的单一功能类&#xff0c;每个类仅对应一个具体的样式属性&#xff08;如颜色、边距、字体大小等&#xff09;&#xff0c;通过组合这些类来构建复杂的界面。这种方式强调代码复用性、维护性和灵活…...

技术速递|使用 GitHub Copilot Agent Mode 进行编程

作者&#xff1a;卢建晖 - 微软高级云技术布道师 翻译/排版&#xff1a;Alan Wang GitHub Copilot 持续发展&#xff0c;从最初的代码补全、生成、优化功能&#xff0c;到通过对话交互提升 AI 代码质量的 GitHub Copilot Chat&#xff0c;再到能够基于项目中多个文件的关联进行…...

Linux系统(Ubuntu和树莓派)的远程操作练习

目录 实验准备一、Ubuntu 下的远程操作二、树莓派下的远程操作三、思考 实验准备 ​ 1.双方应保证处于同一个局域网内 ​ 2.关闭防火墙 (否则别人将不能 ping 通自己,具体说明请参考&#xff1a;windows-关闭防火墙&#xff09; ​ 3.配置虚拟机 ​ a.网桥模式配置 ​ 查询…...

电脑屏保壁纸怎么设置 桌面壁纸设置方法详解

电脑桌面壁纸作为我们每天面对的第一视觉元素&#xff0c;不仅能够彰显个人品味&#xff0c;还能营造舒适的工作或娱乐氛围。电脑桌面壁纸怎么设置呢&#xff1f;下面本文将为大家介绍Windows和macOS两大主流操作系统中设置电脑桌面壁纸的方法&#xff0c;帮助大家快速设置个性…...

为什么选择Redis?解析核心使用场景与性能优化技巧

解析核心使用场景与性能优化技巧 redis只能能操作字符串&#xff0c;要把Java对象存入redis非关系型数据库&#xff0c;需要用序列化变成字符串&#xff0c;再反序列化成Java对象 not only sql NoSQL非关系型数据库&#xff1a;缓存数据库&#xff0c;只能读取数据&#xff0…...

Docker中Redis修改密码失效

docker容器中&#xff0c;我们通过docker run命令运行某一容器 这里&#xff0c;我们通过以下命令来进行运行【注意&#xff0c;这里有两个关键点&#xff1a;-d 和--requirepass】 docker run \ --restartalways \ --log-opt max-size100m \ --log-opt max-file2 \ -p 6379:6…...

质数质数筛

1.试除法判定质数–O(sqrt(N)) bool is_prime(int x) {if (x < 2) return false;for (int i 2; i < x / i; i )if (x % i 0)return false;return true; }2.试除法分解质因数–O(logN)~O(sqrt(N)) void divide(int x) {for (int i 2; i < x / i; i )if (x % i …...

VGA接口设计

1.VGA简介 VGA(Video Graphics Array)视频图形阵列接口是一种模拟信号视频传输标准,用于连接计算机主机和显示设备,如显示器、投影仪等。 VGA接口能够传输红、绿、蓝三原色的模拟信号以及同步信号(数字信号),实现计算机图形和视频信号的输出和显示。 尽管数字化显示接口…...

clickhouse注入手法总结

clickhouse 遇到一题clickhouse注入相关的&#xff0c;没有见过&#xff0c;于是来学习clickhouse的使用&#xff0c;并总结相关注入手法。 环境搭建 直接在docker运行 docker pull clickhouse/clickhouse-server docker run -d --name some-clickhouse-server --ulimit n…...

VsCode保存时删除无用的引用

打开设置文件 教程&#xff1a;打开VsCode设置设置里添加 {"editor.codeActionsOnSave": {"source.organizeImports": false, // 禁用默认的整理导入"source.removeUnusedImports": true // 仅删除未使用的导入} }...

轻松Linux-4.进程概念

屋漏偏逢连夜雨&#xff0c;今天就学Linux 话不多说&#xff0c;展示军火 1.认识冯诺依曼体系 冯诺依曼体系其实并不是什么稀罕的东西&#xff0c;我们生活中的笔记本、服务器、计算机等等大多都遵守冯诺依曼体系 非常经典的一张图 我们所认识的计算机&#xff0c;是由一个个…...

畅游Diffusion数字人(21):基于Wan2.1的音频驱动数字人FantasyTalking

畅游Diffusion数字人(0)&#xff1a;专栏文章导航 前言&#xff1a;AI数字人是目前视觉AIGC最有希望大规模落地的场景之一。现阶段的商业工具&#xff0c;如字节的OminiHuman-1(即梦大师版)、快手的可灵对口型&#xff0c;虽然效果不错&#xff0c;但是收费昂贵。而开源解决方案…...

CentOS禁用nouveau驱动

1、验证 nouveau 是否在运行 lsmod | grep nouveau如果命令返回结果&#xff0c;说明 nouveau 驱动正在运行。 2、编辑黑名单文件 通过编辑黑名单配置文件来禁用 nouveau 驱动&#xff0c;这样在系统启动时不会加载它。 vi /etc/modprobe.d/blacklist-nouveau.conf修改以下…...

《Operating System Concepts》阅读笔记:p587-p596

《Operating System Concepts》学习第 52 天&#xff0c;p587-p596 总结&#xff0c;总计 10 页。 一、技术总结 1.Recovery (1)consistency checking consistency checking 工具&#xff1a;fsck。 (2)log-structure file system (3)WAFL file system 2.Veritas (1)Ve…...

k8s 1.24.17版本部署(使用Flannel插件)

1.k8s集群环境准备 推荐阅读: https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 1.1 环境准备 环境准备:硬件配置: 2core 4GB磁盘: 50GB操作系统: Ubuntu 22.04.04 LTSIP和主机名:10.0.0.231 master23110.0.0.232 worker23210.0…...

通信协议详解(十):PSI5 —— 汽车安全传感器的“抗干扰狙击手”

一、PSI5是什么&#xff1f; 一句话秒懂 PSI5就像传感器界的“防弹信使”&#xff1a;在汽车安全系统&#xff08;如气囊&#xff09;中&#xff0c;用两根线同时完成供电数据传输&#xff0c;即便车祸时线路受损&#xff0c;仍能确保关键信号准确送达&#xff01; 基础概念…...

Kafka生产者和消费者:数据管道的核心引擎与智能终端

在分布式系统中&#xff0c;数据的高效流动如同人体的血液循环&#xff0c;而Kafka的生产者&#xff08;Producer&#xff09;与消费者&#xff08;Consumer&#xff09;正是驱动这一循环的核心组件。它们不仅是Kafka客户端的基本形态&#xff0c;更是构建实时数据生态的基石。…...

特权FPGA之按键消抖

完整代码如下所示&#xff1a; timescale 1ns / 1ps// Company: // Engineer: 特权 // // Create Date: // Design Name: // Module Name: // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: // // Revision: // …...

实时比分更新系统的搭建

搭建一个实时比分更新系统需要考虑多个技术环节&#xff0c;以下是一个完整的实现方案&#xff1a; 一、系统架构 1.数据获取层 比分数据API接入&#xff08;如熊猫比分、API-Football等&#xff09; 网络爬虫&#xff08;作为备用数据源&#xff09; 2.数据处理层 …...

【Linux】线程的概念与控制

目录 1. 整体学习思维导图 2. 线程的概念 2.1 基础概念 2.2 Linux下的线程 初步理解&#xff1a; 2. 分页式存储 3.1 页表 3.1.1 页框/页 3.1.2 页表机制 3.1.3 从虚拟地址到物理地址的转换 总结&#xff1a; 3.2 TLB快表 3.3 缺页异常&#xff08;Page Fault&am…...

K8s 老鸟的配置管理避雷手册

Yining, China 引言 对于这种案例&#xff0c;你们的处理思路是怎么样的呢&#xff0c;是否真正的处理过&#xff0c;如果遇到&#xff0c;你们应该怎么处理。 最后有相关的学习群&#xff0c;有兴趣可以加入。 开始 一、血泪教训&#xff1a;环境变量引发的真实灾难 1.1 …...

飞速(FS)解决方案验证实验室搬迁升级,赋能客户技术服务

飞速&#xff08;FS&#xff09;解决方案验证实验室近日顺利完成搬迁升级&#xff0c;标志着飞速&#xff08;FS&#xff09;在解决方案可行性验证、质量保障以及定制化需求支持方面迈上新台阶&#xff0c;进一步提升了产品竞争力和客户信任度。 全新升级的实验室定位为技术验证…...