算法复习(二分+离散化+快速排序+归并排序+树状数组)
一、二分算法
二分算法,堪称算法世界中的高效查找利器,其核心思想在于利用数据的有序性,通过不断将查找区间减半,快速定位目标元素或满足特定条件的位置。
1. 普通二分
普通二分适用于在有序数组中查找特定元素的位置。我们可以进一步细分需求,如查找满足条件的最左边的数的下标,或者最右边的数的下标。以代码中的 find1
和 find2
函数为例:
cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int a[N];
int n, m;int find1(int x) {int l = 0, r = n + 1;int ans = 0;while (l <= r) {int mid = (l + r) >> 1;if (a[mid] > x) {r = mid - 1;}else if (a[mid] == x) {ans = mid;r = mid - 1;}else if (a[mid] < x) {l = mid + 1;}}return ans;
}
int find2(int x) {int l = 0, r = n + 1;int ans = 0;while (l <= r) {int mid = (l + r) >> 1;if (a[mid] > x) {r = mid - 1;}else if (a[mid] == x) {ans = mid;l = mid + 1;}else if (a[mid] < x) {l = mid + 1;}}return ans;
}
int main() {cin >> n >> m;for (int i = 1; i <= n; i++) {cin >> a[i];}while (m--) {int tmp;cin >> tmp;cout << find1(tmp) - 1 << ' ' << find2(tmp) - 1 << endl;}return 0;
}
在 find1
函数中,当找到与 x
相等的元素时,我们继续将右边界 r
调整为 mid - 1
,目的是持续向左查找,确保最终得到的是最左边的符合条件的下标。而 find2
函数在找到相等元素后,将左边界 l
调整为 mid + 1
,以此向右查找最右边的符合条件的下标。这种技巧在处理重复元素较多的数组时,能够精准定位特定位置,为后续的数据处理提供极大便利。
2. 数值二分
数值二分则是将二分思想应用于数值求解领域。例如,在求一个浮点数的三次方根问题中,我们利用数值二分的方法可以高效且准确地得到结果。
cpp
#include<iostream>
#include<iomanip>
using namespace std;
double n, l, r, mid;
double q(double a) {return a * a * a;
}
int main() {cin >> n;l = -10000, r = 10000;while (r - l >= 1e-7) {mid = (l + r) / 2;if (q(mid) >= n) r = mid;else l = mid;}cout << fixed << setprecision(6) << l;return 0;
}
我们先确定一个可能包含三次方根的区间 [l, r]
,在这个例子中,由于任何实数的三次方根都在 -10000
到 10000
这个较大范围之内(对于一般竞赛和实际应用场景中的数值而言),我们以此作为初始区间。然后,通过不断缩小区间范围,当区间长度小于一定精度(这里是 1e-7
)时,我们认为此时的左边界 l
就是所求三次方根的近似值。数值二分在处理这类数值逼近问题时,展现出了极高的效率和稳定性,相较于暴力枚举等方法,大大减少了计算量。
二、排序算法
排序算法是数据处理领域的核心算法之一,它能够将无序的数据整理成有序的序列,为后续的数据查找、统计、分析等操作奠定基础。
1. 快速排序
快速排序凭借其高效的性能,在众多排序算法中脱颖而出,广泛应用于各类场景。它基于分治策略,通过选择一个基准值,将数组划分为两部分,使得左边部分的元素都小于等于基准值,右边部分的元素都大于等于基准值,然后递归地对左右两部分进行排序。
cpp
#include<bits/stdc++.h>
using namespace std;const int N = 1000010;
int a[N];
int n;
void q(int l, int r) {if (l >= r) return;if (l + 1 == r) {if (a[l] > a[r]) swap(a[l], a[r]);return;}int i = l - 1, j = r + 1;int x = a[(i + j) >> 1];while (i <= j) {do i++; while (a[i] < x);do j--; while (a[j] > x);if (i < j) swap(a[i], a[j]);}q(l, j); q(j + 1, r); // 注意这里是j
}
int main() {cin >> n;for (int i = 0; i < n; i++) scanf("%d", &a[i]);q(0, n - 1);for (int i = 0; i < n; i++) printf("%d ", a[i]);
}
在代码中,我们选取数组中间位置的元素作为基准值 x
。通过两个指针 i
和 j
从数组两端向中间移动,将小于基准值的元素交换到左边,大于基准值的元素交换到右边。当 i
和 j
相遇时,数组就被划分成了符合条件的两部分。随后,递归地对这两部分继续进行快速排序,直至整个数组有序。快速排序的平均时间复杂度为 O(nlogn),在数据量较大时表现出色。
快排的延展:第 k
个数
基于快速排序的思想,我们可以进一步拓展其应用,快速找出数组中第 k
小的数。这在很多需要统计特定位置元素的场景中非常实用。
cpp
#include<bits/stdc++.h>
using namespace std;const int N = 1000010;
int a[N];
int n;int q(int l, int r, int k) {if (l >= r) return a[l];if (l + 1 == r) {if (a[l] > a[r]) swap(a[l], a[r]);if (k == 1) return a[l];return a[r];}int i = l - 1, j = r + 1;int x = a[(i + j) >> 1];while (i <= j) {do i++; while (a[i] < x);do j--; while (a[j] > x);if (i < j) swap(a[i], a[j]);}int len = j - l + 1;if (k <= len) // 注意这里的是k<=len,而不是k<=j+1return q(l, j, k);return q(j + 1, r, k - len);
}
int main() {int k;cin >> n >> k;for (int i = 0; i < n; i++) scanf("%d", &a[i]);cout << q(0, n - 1, k);}
在每次划分后,我们计算左半部分的长度 len
。如果 k
小于等于 len
,说明第 k
小的数在左半部分,我们递归在左半部分查找;否则,在右半部分查找,并且将 k
调整为 k - len
,因为我们已经排除了左半部分的 len
个数。这种方法避免了对整个数组进行完全排序,大大提高了查找特定位置元素的效率。
2. 归并排序
归并排序同样是一种基于分治思想的排序算法,它将数组逐步分解为较小的子数组,分别进行排序后,再将这些有序的子数组合并成一个最终的有序数组。
cpp
#include <iostream>
using namespace std;
const int N = 100010;
int n;
int a[N];
int tmp[N];
void merge_sort(int l, int r) {if (l >= r) return;int mid = l + r >> 1;merge_sort(l, mid); merge_sort(mid + 1, r);int ls = l, rs = mid + 1; int tmpread = 0;while (ls <= mid && rs <= r) {if (a[ls] < a[rs]) tmp[tmpread++] = a[ls++];else tmp[tmpread++] = a[rs++];}while (ls <= mid) tmp[tmpread++] = a[ls++];while (rs <= r) tmp[tmpread++] = a[rs++];for (int i = l, j = 0; i <= r; j++, i++) a[i] = tmp[j];
}
int main() {cin >> n;for (int i = 0; i < n; i++) cin >> a[i];merge_sort(0, n - 1);for (int i = 0; i < n; i++) cout << a[i] << ' ';return 0;
}
在代码实现中,我们首先将数组递归地划分为左右两部分,直到子数组长度为 1(此时子数组自然有序)。然后,在合并阶段,通过两个指针 ls
和 rs
分别指向左右两个子数组的起始位置,比较并将较小的元素依次放入临时数组 tmp
中。当其中一个子数组遍历完后,将另一个子数组剩余的元素直接复制到 tmp
中。最后,将 tmp
数组中的元素复制回原数组 a
,完成一次合并。归并排序的时间复杂度稳定在 O(nlogn),并且它是一种稳定的排序算法,即在排序过程中,相同元素的相对顺序保持不变。
归并排序的延伸:逆序对
归并排序的思想还可以巧妙地用于统计数组中的逆序对数量。逆序对在许多算法问题中有着重要的应用,比如计算数组的无序程度等。
cpp
#include <iostream>
using namespace std;const long long N = 1000010;
long long n;
long long a[N];
long long tmp[N];// 归并排序并统计逆序对数量
long long merge_sort(long long l, long long r) {if (l >= r) return 0;if (l + 1 == r) {if (a[l] > a[r]) {swap(a[l], a[r]);return 1;}return 0;}long long mid = l + r >> 1;long long res = merge_sort(l, mid) + merge_sort(mid + 1, r);long long ls = l, rs = mid + 1, tmpread = 0;while (ls <= mid && rs <= r) {if (a[ls] <= a[rs]) {tmp[tmpread++] = a[ls++];}else {// 当 a[ls] > a[rs] 时,a[ls...mid] 都与 a[rs] 构成逆序对res += mid - ls + 1;tmp[tmpread++] = a[rs++];}}while (ls <= mid) tmp[tmpread++] = a[ls++];while (rs <= r) tmp[tmpread++] = a[rs++];for (long long i = l, j = 0; i <= r; j++, i++) a[i] = tmp[j];return res;
}int main() {cin >> n;for (long long i = 0; i < n; i++) cin >> a[i];cout << merge_sort(0, n - 1);return 0;
}
在合并过程中,当我们发现 a[ls] > a[rs]
时,这意味着 a[ls]
到 a[mid]
这 mid - ls + 1
个元素都与 a[rs]
构成逆序对,因此将这个数量累加到结果 res
中。通过递归地进行归并排序和逆序对统计,我们能够高效地得到整个数组的逆序对数量。
三、区间和
在处理区间和相关问题时,离散化与树状数组的组合是一种非常强大的解决方案。当我们面对无限长数轴上的区间操作,或者数据范围过大导致直接存储和处理困难时,离散化可以将实际用到的数据映射到一个较小的连续空间中,大大减少内存占用和计算量。而树状数组则为快速更新和查询区间和提供了便利。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;// 树状数组类
class FenwickTree {
private:vector<int> tree;int n;// 计算最低位的 1 所代表的值int lowbit(int x) {return x & -x;}public:FenwickTree(int size) : n(size), tree(size + 1, 0) {}// 单点更新操作void update(int idx, int val) {while (idx <= n) {tree[idx] += val;idx += lowbit(idx);}}// 前缀和查询操作int query(int idx) {int res = 0;while (idx > 0) {res += tree[idx];idx -= lowbit(idx);}return res;}
};// 二分查找数值对应的下标
int find(int x, const vector<int>& a) {int l = 0, r = a.size() - 1;while (l < r) {int mid = l + r >> 1;if (a[mid] >= x) r = mid;else l = mid + 1;}// 如果 x 小于最小的位置,返回 0if (a[l] > x) return 0;return l + 1; // 下标从 1 开始
}int main() {int n, m;cin >> n >> m;vector<pair<int, int>> operations(n);vector<pair<int, int>> queries(m);vector<int> all_positions;// 读取操作并记录所有位置for (int i = 0; i < n; ++i) {cin >> operations[i].first >> operations[i].second;all_positions.push_back(operations[i].first);}// 读取查询并记录所有位置for (int i = 0; i < m; ++i) {cin >> queries[i].first >> queries[i].second;all_positions.push_back(queries[i].first);all_positions.push_back(queries[i].second);}// 离散化处理sort(all_positions.begin(), all_positions.end());all_positions.erase(unique(all_positions.begin(), all_positions.end()), all_positions.end());// 创建树状数组FenwickTree fenwickTree(all_positions.size());// 执行操作for (const auto& op : operations) {int idx = find(op.first, all_positions);fenwickTree.update(idx, op.second);}// 处理查询for (const auto& query : queries) {int l = find(query.first, all_positions);int r = find(query.second, all_positions);int result = fenwickTree.query(r) - fenwickTree.query(l - 1);cout << result << endl;}return 0;
}
相关文章:
算法复习(二分+离散化+快速排序+归并排序+树状数组)
一、二分算法 二分算法,堪称算法世界中的高效查找利器,其核心思想在于利用数据的有序性,通过不断将查找区间减半,快速定位目标元素或满足特定条件的位置。 1. 普通二分 普通二分适用于在有序数组中查找特定元素的位置。我们可以…...
4.15 代码随想录第四十四天打卡
99. 岛屿数量(深搜) (1)题目描述: (2)解题思路: #include <iostream> #include <vector> using namespace std;int dir[4][2] {0, 1, 1, 0, -1, 0, 0, -1}; // 四个方向 void dfs(const vector<vector<int>>& grid, vector<vector<bool&g…...
Apache HTTPD 换行解析漏洞
漏洞介绍 CVE-2017-15715 Apache HTTPD 是一个广泛使用的 HTTP 服务器,可以通过 mod_php 模块来运行 PHP 网页。在其 2.4.0 到 2.4.29 版本中存在一个解析漏洞,当文件名以 1.php\x0A 结尾时,该文件会被按照 PHP 文件进行解析,这…...
Spark-SQL(二)
一. 利用IDEA开发Spark-SQL 1 在pop.xml中添加spark-sql依赖 2 spark-sql测试代码 1)在idea中读取json文件创建DataFrame 2)SQL风格语法 3 )DSL风格语法 4) RDD转换成DataFrame,DataFrame转换成DataSet 5&#x…...
Node.js 操作 MySQL 数据库
环境检查 Node.js 环境验证 node -v # 确认版本 ≥14.x npm -v # 确认能正常输出 MySQL 服务检查 # Linux systemctl status mysql# Windows (CMD) sc query MySQL 数据库与表创建 创建数据库 CREATE DATABASE users CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode…...
linux运维篇-Ubuntu(debian)系操作系统创建源仓库
适用范围 适用于Ubuntu(Debian)及其衍生版本的linux系统 例如,国产化操作系统kylin-desktop-v10 简介 先来看下我们需要创建出来的仓库目录结构 Deb_conf_test apt源的主目录 conf 配置文件存放目录 conf目录下存放两个配置文件&…...
从“数据孤岛”到“万物互联”,PLC组网重构工控边界
在工业自动化领域,PLC作为现代智能制造的核心控制单元,其应用已从单一设备的逻辑控制延伸至全厂级生产系统的协同管理。作为工业自动化系统的控制核心,PLC不仅需要实现设备层级的操控,更要通过工业通信网络构建起设备间的数据交互…...
【ISP】AWB的基本原理介绍(基于灰度像素检测)
🎨 基于灰度像素检测的自动白平衡(AWB)算法原理与实现 在图像处理中,自动白平衡(AWB, Auto White Balance)是调整图像色温、还原真实色彩的关键算法之一。本文介绍一种经典实用的 AWB 方法 —— 基于灰度像…...
uniappx项目上架各手机平台
前段时间用uniappx开发的App,领导要求要在各个主要手机平台上上架了,本来不是我的任务,后来其他人没有空交给我了,上架小白一枚,哭唧唧的自己研究吧,根据领导发的账号密码登录各个平台上架,花费…...
DIB:Drone in Box- 室内外场景无人机无人化自主巡检技术方案
DIB:Drone in Box- 室内外场景无人机无人化自主巡检技术方案 作为大疆机场3的无人机无人化巡检方案的补充三个自主巡检方案: 方案一、M350AIBOX自主机场-适合室外无人机自主巡检 方案二、M4AIBOX自主机场-适合室内自主巡检 方案三、停机坪AIBOX 自主巡…...
【大模型】GPT-4、DeepSeek应用与Prompt使用技巧
GPT-4 作为目前最先进的大语言模型之一,在多个领域都有广泛的应用。以下是一些典型的应用实例以及相关的 Prompt 使用技巧,帮助你更好地发挥 GPT-4 的潜力。 一、GPT-4 应用实例 1. 内容创作 博客/文章写作:生成高质量的技术博客、营销文案、…...
《分布式软总线:不同频段Wi-Fi环境下设备发现兼容性难题》
分布式软总线技术作为实现设备互联互通的关键,正逐渐成为构建万物互联世界的基石。然而,当分布式软总线面临不同频段Wi-Fi环境时,设备发现的兼容性问题成为了阻碍其广泛应用的一大挑战。这一问题不仅影响着用户体验,也制约着分布式…...
微电网与分布式能源:智能配电技术的场景化落地
安科瑞顾强 随着数字化转型与能源革命的加速推进,电力系统正经历从传统模式向智能化、网络化方向的深刻变革。用户侧的智能配电与智能用电技术作为这一变革的核心驱动力,正在重塑电力行业的生态格局。本文将从技术架构、应用场景及未来趋势等维度&#…...
Flutter实战(1)-- 调试工具
Flutter实战调试篇:从开发到上线的完整指南 工欲善其事,必先利其器。 本文使用的Flutter的相关版本信息: Flutter 1.19.0-4.3.pre • channel beta Engine • revision 9a28c3bcf4 Tools • Dart 2.9.0 (build 2.9.0-14.1.beta) 本文是Flutte…...
每日算法(双指针算法)(Day 1)
双指针算法 1.算法题目(移动零)2.讲解算法原理3.编写代码 1.算法题目(移动零) 2.讲解算法原理 数组划分,数组分块(快排里面最核心的一步)只需把0改为tmp 双指针算法:利用数组下标来…...
无人机的群体协同与集群控制技术要点!
一、技术要点 通信技术 高效可靠的通信链路:无人机集群需要稳定、低延迟的通信网络,以实现实时数据传输和指令交互。通信方式包括无线自组织网络(Ad Hoc)、蜂窝网络、卫星通信等,需根据任务场景选择合适的通信技术。…...
Linux常见指令介绍上(入门级)
1. ls指令 功能:显示出当前目录下的所有子目录与文件。 PS:注意显示的是当前文件下的子目录与文件。 以下这些是可以和ls配套使用的一些选项 -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d 将目录象文件一样显示,而不是显示其下…...
【Linux系统篇】:从匿名管道到命名管道--如何理解进程通信中的管道?
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:Linux篇–CSDN博客 文章目录 一.进程通信进程通信概念进程通信目的进程通信分类 二.管道匿名…...
三、The C in C++
第三章主要讲解了 C 中继承自 C 语言的核心元素,包括函数创建、执行控制、操作符、数据类型、作用域、存储指示、复合类型创建等。 3.1 创建函数(Creating Functions) C允许函数重载,同名的函数可以根据参数类型和数量区分&…...
探索图像分类模型的 Flask 应用搭建之旅
最近深入研究了利用深度学习模型进行图像分类,并将其部署到 Flask 应用中的项目,过程中遇到了不少挑战,也收获了满满的知识,迫不及待想和大家分享一下。 一、项目背景与目标 在当今数字化的时代,图像数据呈爆炸式增长…...
OpenAI发布GPT-4.1系列模型——开发者可免费使用
OpenAI刚刚推出GPT-4.1模型家族,包含GPT-4.1、GPT-4.1 Mini和GPT-4.1 Nano三款模型。重点是——现在全部免费开放! 虽然技术升级值得关注,但真正具有变革意义的是开发者能通过Cursor、Windsurf和GitHub Copilot等平台立即免费调用这些模型。…...
自动化测试工具playwright中文文档-------14.Chrome 插件
介绍 注意 插件仅在以持久化上下文启动的 Chrome/Chromium 浏览器中工作。请谨慎使用自定义浏览器参数,因为其中一些可能会破坏 Playwright 的功能。 以下是获取位于 ./my-extension 的 Manifest v2 插件背景页面句柄的代码示例。 from playwright.sync_api imp…...
VGA显示
屏幕扫描形式 在回扫的过程中,电子枪不能发射电子,否则会影响荧光屏上既有图像的颜色,所以 回扫期间,需要进行行消隐,简单来说就是关闭电子枪。每行结束时,用行同步信号进行行 同步,图中从右上方向左下方的斜向虚线就是其回行扫示意图。 当整个屏幕的所有行都扫…...
微服务1--服务架构
系统架构 单体应用架构 特点:所有功能集中在一个应用中(如传统的 Spring Boot WAR 包)。 适用场景:小型项目、快速验证阶段。 优缺点: ✅ 开发简单,部署方便。 ❌ 扩展性差,技术栈耦合。 …...
鸿蒙应用元服务开发-Account Kit配置登录权限
一、场景介绍 华为账号登录是基于OAuth 2.0协议标准和OpenID Connect协议标准构建的OAuth2.0 授权登录系统,元服务可以方便地获取华为账号用户的身份标识,快速建立元服务内的用户体系。 用户打开元服务时,不需要用户点击登录/注册按钮&#…...
zg-docker详解与部署微服务实战与k8s
一. Docker课程 Docker简介 Docker是一个开源的容器引擎,有助于快速开发,docker更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 使用宿主机的网络:即使用宿主机的网段。 联合文件系统-一个镜像,启动了多个容器,对于镜像中的文件a,多个容器…...
【含文档+PPT+源码】基于Python的快递服务管理系统【
毕业作品基于Django和HTML的快递网站设计与实现 课程目标: 教你从零开始部署运行项目,学习环境搭建、项目导入及部署,含项目源码、文档、数据库、软件等资料 课程简介: 本课程演示的是一款基于Python的快递服务管理系统&#x…...
嵌入式WebRTC轻量化SDK压缩至500K-800K ,为嵌入式设备节省Flash资源
一、SDK轻量化的核心技术实现 1、WebRTC库裁剪与模块化设计 EasyRTC针对嵌入式设备的资源限制,对原生WebRTC库进行深度裁剪,仅保留核心通信功能(如信令管理、编解码、网络传输等),移除冗余组件(如部分调试…...
JAVA学习-Stream
Stream Stream也叫Stream流,是Jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数 组的数据。 优势: Stream流大量的结合了Lambda的语法风格来编程,提供了一种更加强大,更加简单的方式 操作集合或者数…...
如何在同一个电脑配置多个jdk版本并随意切换
1.右键此电脑属性 2.点击高级系统配置 3.点击环境变量 4.进去后点击新建 变量名:JAVA_HOME_版本,来进行命名 变量值:jdk的路径即可,比如我的是D:\JAVA\JAVA11 5.创建完你所有的jdk版本之后接着新建 变量名:JAVA_HOME…...
网工_传输层协议概述
2025.02.19:网工老姜&小猿网学习笔记 第22节 传输层协议概述 2.1 进程之间的通信2.2 传输层的两个主要协议2.3 传输层的端口2.3.1 端口号 2.4 本章小结 2.1 进程之间的通信 前三层解决了数据从主机到主机的问题,也就是,我们现在已经可以把…...
《java面试宝典》之java多线程面试题
1:什么是线程? 轻量级的进程 2:线程的三个部分是? 处理机 代码 数据 3:为什么使用多线程 使UI响应更快 利用多处理器系统 简化建模 4:代码示例:Java中实现多线程的两种方式,包括如何…...
5款电脑健康状况监测软件
鲁大师:专业且免费,能检测电脑硬件配置,辨别硬件真伪,检查电脑病毒隐患。可一键清理系统垃圾,提升电脑性能。还能全程监护硬件状态,实时检测硬件温度变化,让用户轻松掌握电脑健康状况。360 安全…...
JWT令牌:实现安全会话跟踪与登录认证的利器
摘要:本文深入探讨了JWT令牌在实现会话跟踪和登录认证方面的应用,详细介绍了JWT令牌的概念、组成、生成与校验方法,以及在实际案例中如何通过JWT令牌进行会话跟踪和登录认证的具体实现步骤,为系统的安全认证机制提供了全面且深入的…...
uni-app/微信小程序接入腾讯位置服务地图选点插件
uni-app/微信小程序接入腾讯位置服务地图选点插件 0、常出现的错误及解决方法0.1插件未授权使用(见步骤1)0.2小程序类目不符合引用该类目插件的要求或主体类型不符合要求(见步骤1)0.3需要在app.json中声明permission scope.userLo…...
3款顶流云电脑与传统电脑性能PK战:START云游戏/无影云/ToDesk云电脑谁更流畅?
这里写目录标题 一、前言二、本地机器配置环境三、START云游戏/无影云/ToDesk云电脑配置对比3.1 START云游戏3.2 无影云个人版3.3 ToDesk云电脑 四、本地电脑与云电脑性能实战4.1 游戏场景体验4.1.1 本地电脑测试4.1.2 云电脑测试英雄联盟黑神话悟空其他游戏 4.2 主流设计场景体…...
WINUI——Background小结
在 WinUI/UWP XAML 中,Background(或其他颜色属性)支持 多种颜色表示方式,包括以下三种主流格式: 1. RGB 十六进制(不透明) 格式:#RRGGBB特点…...
公司内部自建知识共享的方式分类、详细步骤及表格总结,分为开源(对外公开)和闭源(仅限内部),以及公共(全员可访问)和内部(特定团队/项目组)四个维度
以下是公司内部自建知识共享的方式分类、详细步骤及表格总结,分为开源(对外公开)和闭源(仅限内部),以及公共(全员可访问)和内部(特定团队/项目组)四个维度&am…...
cursor AI编辑器的详细使用
以下是Cursor AI编辑器的详细使用介绍,涵盖核心功能、安装配置、使用技巧、高级应用及常见问题解决方案,结合了多个权威来源的实践指南和最新技术动态: 一、Cursor AI简介与核心功能 定位与架构 Cursor是基于Visual Studio Code(V…...
js逆向入门实战某某观察网响应数据解密
(base64解码 base64解码)地址:aHR0cHM6Ly93d3cuc3dndWFuY2hhLmNvbS9ob21lL2NpdHktZGV0YWlsP2NvZGU9MzEwMTAw 分析过程 1.抓数据包,发现响应数据是加密字符串。 2.对于这种回显数据解密,大概率通过拦截器实现,搜索intercepto…...
Ubuntu安装yum遇到Package ‘yum‘ has no installation candidate
环境说明 Window11,WSL2,Ubuntu24.04 错误描述 rootLAPTOP:~# apt-get install yum Reading package lists... Done Building dependency tree... Done Reading state information... Done Package yum is not available, but is referred to by anot…...
爱普生SG3225EEN低抖动差分晶振在网络通信的应用
在当今数字化时代,网络通信的飞速发展对数据传输的准确性、稳定性和高效性提出了极为严苛的要求。从 5G 通信网络的大规模部署,到数据中心的海量数据交换,再到智能家居系统的互联互通,每一个环节都离不开精准稳定的时钟信号作为支…...
软考教材重点内容 信息安全工程师 第22章 网站安全需求分析与安全保护工程
22.1.1 网站安全概念 网站是一个基于 B/S 技术架构的综合信息服务平台,主要提供网页信息及业务后台对外接口服务。一般网站涉及网络通信、操作系统、数据库、Web 服务器软件、Web 应用、浏览器、域名服务以及 HTML, XML,SSL; Web Services 等相关协议,同…...
数智读书笔记系列029 《代数大脑:揭秘智能背后的逻辑》
《代数大脑:揭秘智能背后的逻辑》书籍简介 作者简介 加里F. 马库斯(Gary F. Marcus)是纽约大学心理学荣休教授、人工智能企业家,曾创立Geometric Intelligence(后被Uber收购)和Robust.AI公司。他在神经科学、语言学和人工智能领域发表了大量论文,并著有《重启AI》等多部…...
UWB技术与5G、物联网结合的应用前景
一、核心应用场景与优势 工业自动化与智能制造 高精度设备协同:UWB技术(3cm定位精度)与5G(1ms级时延)结合,可实时追踪AGV、机械臂等设备位置,优化生产节拍,提升效率20…...
vue + element-plus自定义表单验证(修改密码业务)
写一个vue组件Password.vue 没有表单验证只有3个表单项 <template><div><el-form><el-form-item label"旧密码"><el-input></el-input></el-form-item><el-form-item label"新密码"><el-input>&l…...
如何将 Vue-FastAPI-Admin 项目的数据库从 SQLite 切换到 MySQL?
近期在github上看到一个开源项目,vue-fastapi-admin。它基于 FastAPI Vue3 Naive UI 的现代化前后端分离开发平台,融合了 RBAC 权限管理、动态路由和 JWT 鉴权,助力中小型应用快速搭建,也可用于学习参考。 由于该项目中数据库用…...
K8S运维实战之集群证书升级与容器运行时更换全记录
第一部分:Kubernetes集群证书升级实战 tips:此博文只演示一个节点作为示范,所有的集群节点步骤都可以参考。 项目背景 某金融业务系统Kubernetes集群即将面临生产证书集中过期风险(核心组件证书剩余有效期不足90天),…...
idea如何克隆拉取远程git项目到本地
概述 idea如何克隆拉取远程git项目到本地?方法很简单,找到入口,跟着引导窗口下一步下一步即可。 方法 File -> New -> Project from Version Control...然后根据引导窗口,一步一步操作即可...
聚铭网络亮相2025超云产品技术大会,联合发布“铭智安全运营大模型一体机及解决方案”
4月11日,于南京银城皇冠假日酒店举办的2025超云产品技术大会圆满落幕。聚铭网络受邀出席本次大会,并与超云联合发布了“铭智安全运营大模型一体机及解决方案”,为智能安全运营领域带来了全新突破。 会议背景 在全球人工智能技术加速产业化…...