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

算法复习(二分+离散化+快速排序+归并排序+树状数组)

一、二分算法

二分算法,堪称算法世界中的高效查找利器,其核心思想在于利用数据的有序性,通过不断将查找区间减半,快速定位目标元素或满足特定条件的位置。

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;
}

相关文章:

算法复习(二分+离散化+快速排序+归并排序+树状数组)

一、二分算法 二分算法&#xff0c;堪称算法世界中的高效查找利器&#xff0c;其核心思想在于利用数据的有序性&#xff0c;通过不断将查找区间减半&#xff0c;快速定位目标元素或满足特定条件的位置。 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 服务器&#xff0c;可以通过 mod_php 模块来运行 PHP 网页。在其 2.4.0 到 2.4.29 版本中存在一个解析漏洞&#xff0c;当文件名以 1.php\x0A 结尾时&#xff0c;该文件会被按照 PHP 文件进行解析&#xff0c;这…...

Spark-SQL(二)

一. 利用IDEA开发Spark-SQL 1 在pop.xml中添加spark-sql依赖 2 spark-sql测试代码 1&#xff09;在idea中读取json文件创建DataFrame 2&#xff09;SQL风格语法 3 &#xff09;DSL风格语法 4&#xff09; RDD转换成DataFrame&#xff0c;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&#xff08;Debian&#xff09;及其衍生版本的linux系统 例如&#xff0c;国产化操作系统kylin-desktop-v10 简介 先来看下我们需要创建出来的仓库目录结构 Deb_conf_test apt源的主目录 conf 配置文件存放目录 conf目录下存放两个配置文件&…...

从“数据孤岛”到“万物互联”,PLC组网重构工控边界

在工业自动化领域&#xff0c;PLC作为现代智能制造的核心控制单元&#xff0c;其应用已从单一设备的逻辑控制延伸至全厂级生产系统的协同管理。作为工业自动化系统的控制核心&#xff0c;PLC不仅需要实现设备层级的操控&#xff0c;更要通过工业通信网络构建起设备间的数据交互…...

【ISP】AWB的基本原理介绍(基于灰度像素检测)

&#x1f3a8; 基于灰度像素检测的自动白平衡&#xff08;AWB&#xff09;算法原理与实现 在图像处理中&#xff0c;自动白平衡&#xff08;AWB, Auto White Balance&#xff09;是调整图像色温、还原真实色彩的关键算法之一。本文介绍一种经典实用的 AWB 方法 —— 基于灰度像…...

uniappx项目上架各手机平台

前段时间用uniappx开发的App&#xff0c;领导要求要在各个主要手机平台上上架了&#xff0c;本来不是我的任务&#xff0c;后来其他人没有空交给我了&#xff0c;上架小白一枚&#xff0c;哭唧唧的自己研究吧&#xff0c;根据领导发的账号密码登录各个平台上架&#xff0c;花费…...

DIB:Drone in Box- 室内外场景无人机无人化自主巡检技术方案

DIB&#xff1a;Drone in Box- 室内外场景无人机无人化自主巡检技术方案 作为大疆机场3的无人机无人化巡检方案的补充三个自主巡检方案&#xff1a; 方案一、M350AIBOX自主机场-适合室外无人机自主巡检 方案二、M4AIBOX自主机场-适合室内自主巡检 方案三、停机坪AIBOX 自主巡…...

【大模型】GPT-4、DeepSeek应用与Prompt使用技巧

GPT-4 作为目前最先进的大语言模型之一&#xff0c;在多个领域都有广泛的应用。以下是一些典型的应用实例以及相关的 Prompt 使用技巧&#xff0c;帮助你更好地发挥 GPT-4 的潜力。 一、GPT-4 应用实例 1. 内容创作 博客/文章写作&#xff1a;生成高质量的技术博客、营销文案、…...

《分布式软总线:不同频段Wi-Fi环境下设备发现兼容性难题》

分布式软总线技术作为实现设备互联互通的关键&#xff0c;正逐渐成为构建万物互联世界的基石。然而&#xff0c;当分布式软总线面临不同频段Wi-Fi环境时&#xff0c;设备发现的兼容性问题成为了阻碍其广泛应用的一大挑战。这一问题不仅影响着用户体验&#xff0c;也制约着分布式…...

微电网与分布式能源:智能配电技术的场景化落地

安科瑞顾强 随着数字化转型与能源革命的加速推进&#xff0c;电力系统正经历从传统模式向智能化、网络化方向的深刻变革。用户侧的智能配电与智能用电技术作为这一变革的核心驱动力&#xff0c;正在重塑电力行业的生态格局。本文将从技术架构、应用场景及未来趋势等维度&#…...

Flutter实战(1)-- 调试工具

Flutter实战调试篇&#xff1a;从开发到上线的完整指南 工欲善其事&#xff0c;必先利其器。 本文使用的Flutter的相关版本信息&#xff1a; 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.算法题目&#xff08;移动零&#xff09;2.讲解算法原理3.编写代码 1.算法题目&#xff08;移动零&#xff09; 2.讲解算法原理 数组划分&#xff0c;数组分块&#xff08;快排里面最核心的一步&#xff09;只需把0改为tmp 双指针算法&#xff1a;利用数组下标来…...

无人机的群体协同与集群控制技术要点!

一、技术要点 通信技术 高效可靠的通信链路&#xff1a;无人机集群需要稳定、低延迟的通信网络&#xff0c;以实现实时数据传输和指令交互。通信方式包括无线自组织网络&#xff08;Ad Hoc&#xff09;、蜂窝网络、卫星通信等&#xff0c;需根据任务场景选择合适的通信技术。…...

Linux常见指令介绍上(入门级)

1. ls指令 功能&#xff1a;显示出当前目录下的所有子目录与文件。 PS:注意显示的是当前文件下的子目录与文件。 以下这些是可以和ls配套使用的一些选项 -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -d 将目录象文件一样显示&#xff0c;而不是显示其下…...

【Linux系统篇】:从匿名管道到命名管道--如何理解进程通信中的管道?

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;Linux篇–CSDN博客 文章目录 一.进程通信进程通信概念进程通信目的进程通信分类 二.管道匿名…...

三、The C in C++

第三章主要讲解了 C 中继承自 C 语言的核心元素&#xff0c;包括函数创建、执行控制、操作符、数据类型、作用域、存储指示、复合类型创建等。 3.1 创建函数&#xff08;Creating Functions&#xff09; C允许函数重载&#xff0c;同名的函数可以根据参数类型和数量区分&…...

探索图像分类模型的 Flask 应用搭建之旅

最近深入研究了利用深度学习模型进行图像分类&#xff0c;并将其部署到 Flask 应用中的项目&#xff0c;过程中遇到了不少挑战&#xff0c;也收获了满满的知识&#xff0c;迫不及待想和大家分享一下。 一、项目背景与目标 在当今数字化的时代&#xff0c;图像数据呈爆炸式增长…...

OpenAI发布GPT-4.1系列模型——开发者可免费使用

OpenAI刚刚推出GPT-4.1模型家族&#xff0c;包含GPT-4.1、GPT-4.1 Mini和GPT-4.1 Nano三款模型。重点是——现在全部免费开放&#xff01; 虽然技术升级值得关注&#xff0c;但真正具有变革意义的是开发者能通过Cursor、Windsurf和GitHub Copilot等平台立即免费调用这些模型。…...

自动化测试工具playwright中文文档-------14.Chrome 插件

介绍 注意 插件仅在以持久化上下文启动的 Chrome/Chromium 浏览器中工作。请谨慎使用自定义浏览器参数&#xff0c;因为其中一些可能会破坏 Playwright 的功能。 以下是获取位于 ./my-extension 的 Manifest v2 插件背景页面句柄的代码示例。 from playwright.sync_api imp…...

VGA显示

屏幕扫描形式 在回扫的过程中,电子枪不能发射电子,否则会影响荧光屏上既有图像的颜色,所以 回扫期间,需要进行行消隐,简单来说就是关闭电子枪。每行结束时,用行同步信号进行行 同步,图中从右上方向左下方的斜向虚线就是其回行扫示意图。 当整个屏幕的所有行都扫…...

微服务1--服务架构

系统架构 单体应用架构 特点&#xff1a;所有功能集中在一个应用中&#xff08;如传统的 Spring Boot WAR 包&#xff09;。 适用场景&#xff1a;小型项目、快速验证阶段。 优缺点&#xff1a; ✅ 开发简单&#xff0c;部署方便。 ❌ 扩展性差&#xff0c;技术栈耦合。 …...

鸿蒙应用元服务开发-Account Kit配置登录权限

一、场景介绍 华为账号登录是基于OAuth 2.0协议标准和OpenID Connect协议标准构建的OAuth2.0 授权登录系统&#xff0c;元服务可以方便地获取华为账号用户的身份标识&#xff0c;快速建立元服务内的用户体系。 用户打开元服务时&#xff0c;不需要用户点击登录/注册按钮&#…...

zg-docker详解与部署微服务实战与k8s

一. Docker课程 Docker简介 Docker是一个开源的容器引擎,有助于快速开发,docker更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 使用宿主机的网络:即使用宿主机的网段。 联合文件系统-一个镜像,启动了多个容器,对于镜像中的文件a,多个容器…...

【含文档+PPT+源码】基于Python的快递服务管理系统【

毕业作品基于Django和HTML的快递网站设计与实现 课程目标&#xff1a; 教你从零开始部署运行项目&#xff0c;学习环境搭建、项目导入及部署&#xff0c;含项目源码、文档、数据库、软件等资料 课程简介&#xff1a; 本课程演示的是一款基于Python的快递服务管理系统&#x…...

嵌入式WebRTC轻量化SDK压缩至500K-800K ,为嵌入式设备节省Flash资源

一、SDK轻量化的核心技术实现 1、WebRTC库裁剪与模块化设计 EasyRTC针对嵌入式设备的资源限制&#xff0c;对原生WebRTC库进行深度裁剪&#xff0c;仅保留核心通信功能&#xff08;如信令管理、编解码、网络传输等&#xff09;&#xff0c;移除冗余组件&#xff08;如部分调试…...

JAVA学习-Stream

Stream Stream也叫Stream流&#xff0c;是Jdk8开始新增的一套API (java.util.stream.*)&#xff0c;可以用于操作集合或者数 组的数据。 优势&#xff1a; Stream流大量的结合了Lambda的语法风格来编程&#xff0c;提供了一种更加强大&#xff0c;更加简单的方式 操作集合或者数…...

如何在同一个电脑配置多个jdk版本并随意切换

1.右键此电脑属性 2.点击高级系统配置 3.点击环境变量 4.进去后点击新建 变量名&#xff1a;JAVA_HOME_版本&#xff0c;来进行命名 变量值&#xff1a;jdk的路径即可&#xff0c;比如我的是D:\JAVA\JAVA11 5.创建完你所有的jdk版本之后接着新建 变量名&#xff1a;JAVA_HOME…...

网工_传输层协议概述

2025.02.19&#xff1a;网工老姜&小猿网学习笔记 第22节 传输层协议概述 2.1 进程之间的通信2.2 传输层的两个主要协议2.3 传输层的端口2.3.1 端口号 2.4 本章小结 2.1 进程之间的通信 前三层解决了数据从主机到主机的问题&#xff0c;也就是&#xff0c;我们现在已经可以把…...

《java面试宝典》之java多线程面试题

1&#xff1a;什么是线程&#xff1f; 轻量级的进程 2&#xff1a;线程的三个部分是&#xff1f; 处理机 代码 数据 3&#xff1a;为什么使用多线程 使UI响应更快 利用多处理器系统 简化建模 4&#xff1a;代码示例&#xff1a;Java中实现多线程的两种方式&#xff0c;包括如何…...

5款电脑健康状况监测软件

鲁大师&#xff1a;专业且免费&#xff0c;能检测电脑硬件配置&#xff0c;辨别硬件真伪&#xff0c;检查电脑病毒隐患。可一键清理系统垃圾&#xff0c;提升电脑性能。还能全程监护硬件状态&#xff0c;实时检测硬件温度变化&#xff0c;让用户轻松掌握电脑健康状况。360 安全…...

JWT令牌:实现安全会话跟踪与登录认证的利器

摘要&#xff1a;本文深入探讨了JWT令牌在实现会话跟踪和登录认证方面的应用&#xff0c;详细介绍了JWT令牌的概念、组成、生成与校验方法&#xff0c;以及在实际案例中如何通过JWT令牌进行会话跟踪和登录认证的具体实现步骤&#xff0c;为系统的安全认证机制提供了全面且深入的…...

uni-app/微信小程序接入腾讯位置服务地图选点插件

uni-app/微信小程序接入腾讯位置服务地图选点插件 0、常出现的错误及解决方法0.1插件未授权使用&#xff08;见步骤1&#xff09;0.2小程序类目不符合引用该类目插件的要求或主体类型不符合要求&#xff08;见步骤1&#xff09;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​​ 中&#xff0c;Background&#xff08;或其他颜色属性&#xff09;支持 ​​多种颜色表示方式​​&#xff0c;包括以下三种主流格式&#xff1a; ​​1. RGB 十六进制&#xff08;不透明&#xff09;​​ ​​格式​​&#xff1a;#RRGGBB​​特点…...

公司内部自建知识共享的方式分类、详细步骤及表格总结,分为开源(对外公开)和闭源(仅限内部),以及公共(全员可访问)和内部(特定团队/项目组)四个维度

以下是公司内部自建知识共享的方式分类、详细步骤及表格总结&#xff0c;分为开源&#xff08;对外公开&#xff09;和闭源&#xff08;仅限内部&#xff09;&#xff0c;以及公共&#xff08;全员可访问&#xff09;和内部&#xff08;特定团队/项目组&#xff09;四个维度&am…...

cursor AI编辑器的详细使用

以下是Cursor AI编辑器的详细使用介绍&#xff0c;涵盖核心功能、安装配置、使用技巧、高级应用及常见问题解决方案&#xff0c;结合了多个权威来源的实践指南和最新技术动态&#xff1a; 一、Cursor AI简介与核心功能 定位与架构 Cursor是基于Visual Studio Code&#xff08;V…...

js逆向入门实战某某观察网响应数据解密

(base64解码 base64解码&#xff09;地址:aHR0cHM6Ly93d3cuc3dndWFuY2hhLmNvbS9ob21lL2NpdHktZGV0YWlsP2NvZGU9MzEwMTAw 分析过程 1.抓数据包&#xff0c;发现响应数据是加密字符串。 ​ 2.对于这种回显数据解密&#xff0c;大概率通过拦截器实现&#xff0c;搜索intercepto…...

Ubuntu安装yum遇到Package ‘yum‘ has no installation candidate

环境说明 Window11&#xff0c;WSL2&#xff0c;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低抖动差分晶振在网络通信的应用

在当今数字化时代&#xff0c;网络通信的飞速发展对数据传输的准确性、稳定性和高效性提出了极为严苛的要求。从 5G 通信网络的大规模部署&#xff0c;到数据中心的海量数据交换&#xff0c;再到智能家居系统的互联互通&#xff0c;每一个环节都离不开精准稳定的时钟信号作为支…...

软考教材重点内容 信息安全工程师 第22章 网站安全需求分析与安全保护工程

22.1.1 网站安全概念 网站是一个基于 B/S 技术架构的综合信息服务平台&#xff0c;主要提供网页信息及业务后台对外接口服务。一般网站涉及网络通信、操作系统、数据库、Web 服务器软件、Web 应用、浏览器、域名服务以及 HTML, XML,SSL; Web Services 等相关协议&#xff0c;同…...

数智读书笔记系列029 《代数大脑:揭秘智能背后的逻辑》

《代数大脑:揭秘智能背后的逻辑》书籍简介 作者简介 加里F. 马库斯(Gary F. Marcus)是纽约大学心理学荣休教授、人工智能企业家,曾创立Geometric Intelligence(后被Uber收购)和Robust.AI公司。他在神经科学、语言学和人工智能领域发表了大量论文,并著有《重启AI》等多部…...

UWB技术与5G、物联网结合的应用前景

‌ 一、核心应用场景与优势‌ ‌工业自动化与智能制造‌ ‌高精度设备协同‌&#xff1a;UWB技术&#xff08;3cm定位精度&#xff09;与5G&#xff08;1ms级时延&#xff09;结合&#xff0c;可实时追踪AGV、机械臂等设备位置&#xff0c;优化生产节拍&#xff0c;提升效率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上看到一个开源项目&#xff0c;vue-fastapi-admin。它基于 FastAPI Vue3 Naive UI 的现代化前后端分离开发平台&#xff0c;融合了 RBAC 权限管理、动态路由和 JWT 鉴权&#xff0c;助力中小型应用快速搭建&#xff0c;也可用于学习参考。 由于该项目中数据库用…...

K8S运维实战之集群证书升级与容器运行时更换全记录

第一部分&#xff1a;Kubernetes集群证书升级实战 tips:此博文只演示一个节点作为示范&#xff0c;所有的集群节点步骤都可以参考。 项目背景 某金融业务系统Kubernetes集群即将面临生产证书集中过期风险&#xff08;核心组件证书剩余有效期不足90天&#xff09;&#xff0c…...

idea如何克隆拉取远程git项目到本地

概述 idea如何克隆拉取远程git项目到本地&#xff1f;方法很简单&#xff0c;找到入口&#xff0c;跟着引导窗口下一步下一步即可。 方法 File -> New -> Project from Version Control...然后根据引导窗口&#xff0c;一步一步操作即可...

聚铭网络亮相2025超云产品技术大会,联合发布“铭智安全运营大模型一体机及解决方案”

4月11日&#xff0c;于南京银城皇冠假日酒店举办的2025超云产品技术大会圆满落幕。聚铭网络受邀出席本次大会&#xff0c;并与超云联合发布了“铭智安全运营大模型一体机及解决方案”&#xff0c;为智能安全运营领域带来了全新突破。 会议背景 在全球人工智能技术加速产业化…...