A* floyd算法 bellman-ford
求源点到目标点最短距离
排序的里面要加上与目标点一个预估距离,与dj算法差距只有这儿
预估要小于等于真实的最短距离,吸引力要适当
越接近实际距离越快
#include<bits/stdc++.h>
using namespace std;// 方向向量:上、右、下、左
const vector<int> directions = {-1, 0, 1, 0, -1};struct Node {int x, y, cost;bool operator>(const Node &other) const {return cost > other.cost;}
};// Dijkstra 算法
int minDistance1(vector<vector<int>> &grid, int startX, int startY, int targetX, int targetY) {if (grid[startX][startY] == 0 || grid[targetX][targetY] == 0) return -1;int n = grid.size(), m = grid[0].size();vector<vector<int>> distance(n, vector<int>(m, INT_MAX));vector<vector<bool>> visited(n, vector<bool>(m, false));priority_queue<Node, vector<Node>, greater<Node>> heap;distance[startX][startY] = 1;heap.push({startX, startY, 1});while (!heap.empty()) {Node cur = heap.top(); heap.pop();int x = cur.x, y = cur.y;if (visited[x][y]) continue;visited[x][y] = true;if (x == targetX && y == targetY) return distance[x][y];for (int i = 0; i < 4; ++i) {int nx = x + directions[i], ny = y + directions[i + 1];if (nx >= 0 && nx < n && ny >= 0 && ny < m && grid[nx][ny] == 1 && !visited[nx][ny] && distance[x][y] + 1 < distance[nx][ny]) {distance[nx][ny] = distance[x][y] + 1;heap.push({nx, ny, distance[nx][ny]});}}}return -1;
}// 曼哈顿距离
int heuristic(int x, int y, int targetX, int targetY) {return abs(targetX - x) + abs(targetY - y);
}// A* 算法
int minDistance2(vector<vector<int>> &grid, int startX, int startY, int targetX, int targetY) {if (grid[startX][startY] == 0 || grid[targetX][targetY] == 0) return -1;int n = grid.size(), m = grid[0].size();vector<vector<int>> distance(n, vector<int>(m, INT_MAX));vector<vector<bool>> visited(n, vector<bool>(m, false));priority_queue<Node, vector<Node>, greater<Node>> heap;distance[startX][startY] = 1;heap.push({startX, startY, 1 + heuristic(startX, startY, targetX, targetY)});while (!heap.empty()) {Node cur = heap.top(); heap.pop();int x = cur.x, y = cur.y;if (visited[x][y]) continue;visited[x][y] = true;if (x == targetX && y == targetY) return distance[x][y];for (int i = 0; i < 4; ++i) {int nx = x + directions[i], ny = y + directions[i + 1];if (nx >= 0 && nx < n && ny >= 0 && ny < m && grid[nx][ny] == 1 && !visited[nx][ny] && distance[x][y] + 1 < distance[nx][ny]) {distance[nx][ny] = distance[x][y] + 1;heap.push({nx, ny, distance[x][y] + 1 + heuristic(nx, ny, targetX, targetY)});}}}return -1;
}// 生成随机地图
vector<vector<int>> randomGrid(int n) {vector<vector<int>> grid(n, vector<int>(n, 1));for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if ((double)rand() / RAND_MAX < 0.3) {grid[i][j] = 0; // 30% 概率为障碍}}}return grid;
}int main() {srand(time(0));int len = 100, testTime = 10000;cout << "功能测试开始" << endl;for (int i = 0; i < testTime; ++i) {int n = rand() % len + 2;vector<vector<int>> grid = randomGrid(n);int startX = rand() % n, startY = rand() % n;int targetX = rand() % n, targetY = rand() % n;int ans1 = minDistance1(grid, startX, startY, targetX, targetY);int ans2 = minDistance2(grid, startX, startY, targetX, targetY);if (ans1 != ans2) {cout << "出错了!" << endl;}}cout << "功能测试结束" << endl;cout << "性能测试开始" << endl;vector<vector<int>> grid = randomGrid(4000);int startX = 0, startY = 0, targetX = 3900, targetY = 3900;clock_t start, end;start = clock();int ans1 = minDistance1(grid, startX, startY, targetX, targetY);end = clock();cout << "运行 Dijkstra 算法结果: " << ans1 << ", 运行时间(毫秒): " << (end - start) * 1000.0 / CLOCKS_PER_SEC << endl;start = clock();int ans2 = minDistance2(grid, startX, startY, targetX, targetY);end = clock();cout << "运行 A* 算法结果: " << ans2 << ", 运行时间(毫秒): " << (end - start) * 1000.0 / CLOCKS_PER_SEC << endl;cout << "性能测试结束" << endl;return 0;
}
floyd任意两点最短,不能有负环,可以有负边,距离就会变成无穷负
中间点最先枚举跳板点,看能不能缩短距离
P2910 [USACO08OPEN] Clear And Present Danger S - 洛谷
#include <bits/stdc++.h>
using namespace std;
const int maxn=101;
const int maxm=10001;
int path[maxm];
int distance1[maxn][maxn];//点
int n,m,ans;
void floyd()
{for(int bridge=1;bridge<=n;bridge++){for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(distance1[i][bridge]!=INT_MAX&&distance1[bridge][j]!=INT_MAX&&distance1[i][j]>distance1[i][bridge]+distance1[bridge][j])distance1[i][j]=distance1[i][bridge]+distance1[bridge][j];}}
}
int main()
{cin>>n>>m;for(int i=0;i<m;i++) cin>>path[i];for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)distance1[i][j]=INT_MAX;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>distance1[i][j];floyd();int ans=0;for(int i=1;i<m;i++)ans+=distance1[path[i-1]][path[i]];cout<<ans;
}
bellman-ford可以解决单源最短路问题,比dj算法强在可以解决负边
787. K 站中转内最便宜的航班 - 力扣(LeetCode)
流程就是每次遍历每一条边,看看能不能缩小某两点距离,进行n-1轮操作后,一定可以松弛所有边的距离
class Solution {
public:int findCheapestPrice(int n, vector<vector<int>>& flights, int src, int dst, int k) {vector<int> cur(n,INT_MAX),nxt;cur[src]=0;//限制不超过k+1条边for(int i=0;i<=k;i++){nxt=cur;for(auto a:flights){if(cur[a[0]]!=INT_MAX)nxt[a[1]]=min(nxt[a[1]],cur[a[0]]+a[2]);}cur=nxt;}return cur[dst]==INT_MAX?-1:cur[dst];}
};
判断是否存在负环时候也可以用
SPFA优化
就是哪条点动过了就在下一轮优化
P3385 【模板】负环 - 洛谷
#include<bits/stdc++.h>
using namespace std;
const int maxn=2001;
const int maxm=6001;
int head[maxn],n,m;
int nxt[maxm];
int to[maxm];
int weight[maxm],cnt=1;
int distance1[maxn];
int updatecnt[maxn];//标记一个点被松弛次数
bool enter[maxn];
queue<int>q;
void addedge(int u,int v,int w)
{nxt[cnt]=head[u];to[cnt]=v;weight[cnt]=w;head[u]=cnt++;
}
bool spfa()
{distance1[1]=0;updatecnt[1]++;q.push(1);enter[1]=1;while(!q.empty()){int u=q.front();q.pop();enter[u]=false;for(int ei=head[u],v,w;ei>0;ei=nxt[ei]){v=to[ei];w=weight[ei];if(distance1[u]+w<distance1[v]){distance1[v]=distance1[u]+w;if(!enter[v]){if(++updatecnt[v]>n-1)return true;q.push(v);enter[v]=true;}}}}return false;
}
int main()
{int t;cin>>t;while(t--){cin>>n>>m;fill(distance1+1,distance1+n+1,INT_MAX);while(!q.empty()) q.pop();cnt=1;memset(updatecnt,0,sizeof(updatecnt));memset(enter,0,sizeof(enter));memset(head,0,sizeof(head));for(int i=1,u,v,w;i<=m;i++){cin>>u>>v>>w;if(w>=0){addedge(u,v,w);addedge(v,u,w);}elseaddedge(u,v,w);}cout<<(spfa()?"YES":"NO")<<endl;}
}
没有优化过的版本
#include<bits/stdc++.h>
using namespace std;
const int maxn=2001;
const int maxm=6001;
int head[maxn],n,m;
int nxt[maxm];
int to[maxm];
int weight[maxm],cnt=1;
int distance1[maxn];
void addedge(int u,int v,int w)
{nxt[cnt]=head[u];to[cnt]=v;weight[cnt]=w;head[u]=cnt++;
}
bool spfa()
{distance1[1]=0;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){//遍历每一条边for(int k=head[j];k>0;k=nxt[k]){if(distance1[j]!=INT_MAX&&distance1[to[k]]>distance1[j]+weight[k]){if(i==n)return true;distance1[to[k]]=distance1[j]+weight[k];}}}}return false;
}
int main()
{int t;cin>>t;while(t--){cin>>n>>m;fill(distance1+1,distance1+n+1,INT_MAX);cnt=1;memset(head,0,sizeof(head));for(int i=1,u,v,w;i<=m;i++){cin>>u>>v>>w;if(w>=0){addedge(u,v,w);addedge(v,u,w);}elseaddedge(u,v,w);}cout<<(spfa()?"YES":"NO")<<endl;}
}
相关文章:
A* floyd算法 bellman-ford
求源点到目标点最短距离 排序的里面要加上与目标点一个预估距离,与dj算法差距只有这儿 预估要小于等于真实的最短距离,吸引力要适当 越接近实际距离越快 #include<bits/stdc.h> using namespace std;// 方向向量:上、右、下、左 const vector<int> …...
【数据挖掘】KL散度(Kullback-Leibler Divergence, KLD)
KL散度(Kullback-Leibler Divergence, KLD) 是衡量两个概率分布 P 和 Q之间差异的一种非对称度量。它用于描述当使用分布 Q 逼近真实分布 P 时,信息丢失的程度。 KL散度的数学定义 给定两个离散概率分布 P(x)和 Q(x),它们在相同的…...
Linux shell 进度条
概述 在 Linux Shell 中实现一个简单的进度条可以通过 printf 命令结合特殊字符来实现,以下是一个示例脚本,它模拟了一个从 0% 到 100% 的进度条。 作用 反馈任务进度:让用户直观了解任务执行的进展情况,比如文件拷贝、系统更新…...
ctfshow web刷题记录
RCE 第一题 eval代码执行 : 1、使用system 加通配符过滤 ?csystem("tac%20fl*") ; 2、反字节执行 xxx %20 echo 反字节 3、变量转移 重新定义一个变量 让他代替我们执行 4、伪协议玩法 ?cinclude$_GET[1]?>&1php://filter/readc…...
leetcode日记(101)填充每个节点的下一个右侧节点指针Ⅱ
意料之中有这题,将之前的思路换一下即可,层序遍历的思路将record(记录下一个循环的次数)手动加减。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL)…...
大语言模型微调和大语言模型应用的区别?
1. 基本概念 微调(Fine-tuning) 定义:微调是指在预训练大语言模型的基础上,通过在特定领域或任务的数据上进一步训练,从而使模型在该特定任务上表现更优。 目的:适应具体的任务需求,比如法律文…...
Leetcode-131.Palindrome Partitioning [C++][Java]
目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-131.Palindrome Partitioninghttps://leetcode.com/problems/palindrome-partitioning/description/131. 分割回文串 - 力扣(LeetCode)131. 分割回文串 - 给你一个字符串 s,请你…...
DeepSeek:开启机器人智能化的革命性突破
引言 在2025年全球机器人产业格局中,中国AI公司深度求索(DeepSeek)凭借开源机器人智能控制系统DeepSeek-R1,正在掀起一场从底层算法到应用生态的技术革命。不同于传统机器人依赖预设程序的局限,DeepSeek通过深度推理能…...
解决load()文件报错zipfile.BadZipFile: File is not a zip file
报错如下图: 有可能是资源没有关闭造成了错误,这个网上已经有很多解决方案了,大家可自行查阅。 如果你在别的地方都没有找到解决问题,那么可能是以下这种情况。 1、描述 我在服务器上的代码load()加载文件时,出现了…...
【Tools】Visual Studio Code安装保姆级教程(2025版)
00. 目录 文章目录 00. 目录01. Visual Studio Code概述02. Visual Studio Code下载03. Visual Studio Code安装04. Visual Studio Code配置05. 附录 01. Visual Studio Code概述 Visual Studio Code(简称 VS Code)是由微软开发的一款免费、开源且跨平台…...
Python库安装报错解决思路以及机器学习环境配置详细方案
文章目录 概要第三方库gdalmahotasgraphviznltk-datalazypredictscikit-surprisenb_extensions 机器学习GPU-torch安装torch_geometric安装ubuntu安装显卡驱动dlib安装torch-cluster、torch-scatter、torch-sparse和torch-geometricYOLOapextensorflow-gpu Python && P…...
ETIMEDOUT 网络超时问题
根据日志显示,你遇到的 **ETIMEDOUT 网络超时问题** 是由于 npm 无法连接到企业内部的 Nexus 仓库(http://192.168.55.12:8001)导致的。以下是具体原因和解决方案: 一、问题根源 Nexus 仓库不可达 日志中所有依赖包均尝试从 h…...
superset部署记录
具备网络条件的,完全可以一键部署,不需要折腾。网络条件不具备时,部署记录留存备查。 1、正常模式 详细介绍参考:【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台-腾讯云开发者社区-腾讯云 (tencent.c…...
todolist docker 小工具
参考链接 前排提示 没有中文,可使用浏览器 翻译 前提 安装docker安装docker-compose 下载仓库 git clone https://github.com/JordanKnott/taskcafe进行安装 cd taskcafe docker-compose -p taskcafe up -d服务启动后会监听在 3333 端口上,通过浏览器…...
PowerToys:解锁Windows生产力的终极武器
欢迎来到涛涛聊AI。今天想着把win键和加号的组合键映射为win键和Q键盘。经过搜索发现PowerToys。 在数字化办公的浪潮中,效率是职场人永恒的追求。微软推出的 PowerToys 作为Windows官方系统强化工具,凭借其强大的功能和开源免费的特性,已成为…...
内存管理:
我们今天来学习一下内存管理: 1. 内存分布: 我们先来看一下我们下面的图片: 这个就是我们的内存,我们的内存分为栈区,堆区,静态区,常量区; 我们的函数栈帧开辟消耗的内存就是我们…...
ElementUI 表格中插入图片缩略图,鼠标悬停显示大图
如何在 ElementUI 的表格组件 Table 中插入图片缩略图,通过鼠标悬停显示大图?介绍以下2种方式: 方法1:直接在模板元素中插入 <template><el-table :data"tableData"><el-table-column label"图片…...
从被动响应到主动预见:智能可观测性技术的变革与实践
思维导图 一、引言 🌃 想象一下,在一个深夜 🌙,你的关键业务系统突然出现故障 🚨。传统情况下,你可能会收到大量不相关的告警 📱💬💬💬,然后花费…...
【Linux】五种 IO 模型与非阻塞 IO
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 重新理解 IO🦋 为什么说网络问题的本质是 I/O 问题?🎀 从数据流动看网络通信🎀 网络 I/O 的瓶颈 …...
从零开始开发纯血鸿蒙应用之无框截图
从零开始开发纯血鸿蒙应用 〇、前言二、元素定位1、理论依据2、使用指导 三、认识 ComponentSnapshot1、get 方法2、获取 ComponentSnapshot 实例 四、实现组件截图1、掌握图片编码能力2、保存到图库3、实现组件截图 〇、前言 截图,或者说截屏,已经是每…...
【商城实战(36)】UniApp性能飞升秘籍:从渲染到编译的深度优化
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
无人自助空间智能管理系统解决方案(深度优化版)
无人自助空间智能管理系统解决方案(深度优化版) 一、行业痛点与系统价值 传统管理依赖人工: 人工管理模式下,易出现人为失误,如计费错误、资源分配不当等。同时,人工操作效率低下,在高峰时段…...
pycharm配置镜像源【pycharm最新版(23.2.5及以上)方法】
经常遇到pycharm中无法安装或者安装慢的问题,纠结了好久,终于找到这个解决办法了。 为什么要配置镜像源: 因为Python的包管理工具pip一般从PyPI(Python Package Index)下载安装包,但是PyPI位于国外&#x…...
探索ima.copilot:个人知识库搭建的AI新利器
在信息爆炸的时代,知识的积累与管理成为了个人发展的关键。面对海量的科研文献、工作资料和各类信息,如何高效地构建属于自己的知识体系,是许多人面临的挑战。ima.copilot这款AI工具的出现,为解决这一难题提供了新的思路。它凭借强…...
向量数据库技术系列五-Weaviate介绍
一、前言 Weaviate 是由德国公司 SeMI Technologies 开发的开源向量搜索引擎数据库。它结合了向量搜索和图数据库技术,旨在为 AI 应用提供高效的数据存储和检索能力。具有以下的特点: 高性能向量搜索 Weaviate 支持高效的向量索引和近似最近邻&#x…...
1.Qt SDK 的下载和安装
1Qt 下载官⽹: http://download.qt.io/archive/qt/ 2版本自行选择 3下载对应版本的.exe文件 4下载包下载完成 5双击.exe文件,默认下一步,要注册一个qt的账户 6记住程序安装的位置,后面要配置环境变量 7勾3个(组件自行…...
光场中的核心概念:Macro Pixel与SAI的深度解析与实例应用
一、概念详解:从硬件到算法的核心要素 Macro Pixel(宏像素) Macro Pixel是光场相机的硬件核心单元,由微透镜阵列覆盖的一组传感器子像素构成。每个微透镜对应一个宏像素,其子像素分别记录通过该微透镜不同区域的光线方…...
机器学习(吴恩达)
一, 机器学习 机器学习定义: 计算机能够在没有明确的编程情况下学习 特征: 特征是描述样本的属性或变量,是模型用来学习和预测的基础。如: 房屋面积, 地理位置 标签: 监督学习中需要预测的目标变量,是模型的输出目标。如: 房屋价格 样本: 如: {面积100㎡…...
Ubuntu 20.04 + mysql 8 默认密码问题
问题描述: Ubuntu20.04安装完mysql8之后无法登录,不知道密码 mysql -u root 原因: 系统默认自动配置好了用户和强密码 解决办法: sudo cat /etc/mysql/debian.cnf查看该文件 利用上面的user 和 passwd 即可登录mysql mysql …...
私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s)
1. 引言 在企业级大数据架构中,私有云部署成为了许多企业的首选,尤其是对数据安全性、合规性、资源控制要求较高的场景。相比于公有云,私有云具备更强的灵活性,能够根据业务需求进行定制化优化。本文将探讨如何在私有云环境下构建大数据平台,包括 Docker 容器化、Kuberne…...
使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法
使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法 现在PRD文档要如何写更高效、更清晰、更完整? 还是按以前的思路写PRD,就还是以前的样子。 现在AI这么强大,产品经理如何使用DeepSeek写PRD文档,产品经…...
拥有一台云服务器能做什么呢?
拥有一台云服务器就像拥有了一台24小时在线的远程电脑,你可以通过互联网随时随地管理它。它的用途非常广泛,无论是个人学习、开发测试,还是企业级应用部署,都能发挥重要作用。以下是常见的应用场景,按需求分类整理&…...
4大观点直面呈现|直播回顾-DeepSeek时代的AI算力管理
直播回顾 2025年2月21日晚上9点30分, 我们迎来了新春后的首场人工智能三人行宣讲活动。 这场直播聚焦于Deepseek开源大模型, 探讨了其对AI算力、算法、数据及应用带来的新发展。 本次直播邀请到了上海赞奇的总经理俞阁总和速石科技陈琳涛,…...
DBeaver安装步骤及连接数据库
一、DBeaver安装步骤 1、双击安装文件“dbeaver-ce-21.3.3-x86_64-setup.exe”,进入安装界面 2、点击ok》下一步》我接受,选择下图选项,为此所有用户使用 3、点击下一步,将重新弹出安装开始界面 4、点击ok》下一步》我接受&…...
玩转python:通俗易懂掌握高级数据结构-collections模块之UserDict
引言 UserDict是Python中collections模块提供的一个强大工具,它是dict的封装类,允许用户自定义字典的行为。通过继承UserDict,开发者可以轻松扩展字典的功能,实现自定义的字典逻辑。本文将详细介绍UserDict的关键用法和特性&…...
如何解决ChatGPTplus/pro o1/o3模型无法识别图片或者文件,限制次数?
你是否遇到ChatGPTplus无法识别图片、或者无法识别文件,甚至回答很简短,o1不思考,GPT-4o不能联网、分析图片和处理文件!感觉非常敷衍。本文教你如何确定自己的账号是否被降智;教你如何降智的原因;教你解决降…...
96.HarmonyOS NEXT工具类设计模式教程:最佳实践与实现
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT工具类设计模式教程:最佳实践与实现 1. 工具类设计原则 1.1 基本原则 原则说明示例单一职责每个类只负责一个功能Win…...
springboot+vue如何前后端联调,手搓前后端分离项目
我们首先在前端安装axios,这个npm就可以!下载完成后。我们用我们之前的页面,然后写一个card,在一个card里面渲染我们的用户数据,我们先写一个查询所有用户信息的一个效果! <el-card class"box-card…...
git备份or打补丁
起因 在工作中使用git pull突然发现仓库出现了找不到代码库问题,但是这个时候有个对策又急着需要,于是乎,就需要备份,拷贝给另一个工程师输出。 git 打补丁操作 工程师A生成补丁文件 touch a.txtgit add a.txtgit commit -m &qu…...
游戏成瘾与学习动力激发研究——多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析
多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析 一、核心概念 多巴胺(Dopamine) 一种关键神经递质,主要功能是调节动机、奖赏学习和行为强化。它并非直接产生“快乐感”,而是驱动“寻求奖赏”的行为动机。 脉冲式释放(Phasic Release) 多巴胺神经元以短暂、高频的爆…...
【C/C++】最长回文子串(leetcode T5)
核心考点:回文字符串匹配中心扩展法 题目描述 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。…...
表的操作以及增删查改
1. 表的操作 1.1 查看所有表 show tables; 1. 2 创建表 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_namefield datatype [ 约束 ] [comment 注解内容 ][, field datatype [ 约束 ] [comment 注解内容 ]] ...) [engine 存储引擎 ] [character set 字符集 ] [collate …...
【人工智能基础2】Tramsformer架构、自然语言处理基础、计算机视觉总结
文章目录 七、Transformer架构1. 替代LSTM的原因2. Transformer架构:编码器 - 解码器架构3. Transformer架构原理 八、自然语言处理基础1. 语言模型基本概念2. 向量语义3. 预训练语言模型的基本原理与方法4. DeepSeek基本原理 九、计算机视觉 七、Transformer架构 …...
Python游戏开发自学指南:从入门到实践(第四天)
Python不仅适用于数据分析、Web开发和自动化脚本,还可以用于游戏开发!虽然Python不是传统意义上的游戏开发语言,但其简洁的语法和丰富的库使其成为初学者学习游戏开发的绝佳选择。本文将为你提供一份全面的Python游戏开发自学指南,…...
向量数据库技术系列四-FAISS介绍
一、前言 FAISS(Facebook AI Similarity Search)是由Facebook AI Research开发的一个开源库,主要用于高效地进行大规模相似性搜索和聚类操作。主要功能如下: 向量索引与搜索:FAISS提供了多种索引和搜索向量的方法&…...
【网络安全 | 漏洞挖掘】价值14981$的Google点击劫持漏洞
未经许可,不得转载。 文章目录 点击劫持前言漏洞1攻击场景漏洞2攻击场景漏洞3攻击场景漏洞4攻击场景漏洞5攻击场景漏洞6攻击场景点击劫持 点击劫持是一种恶意的用户界面攻击技术,也被称为 “UI 覆盖攻击” 或 “透明劫持”。 攻击者通过创建一个看似正常的网页,并在其中嵌…...
CMake 保姆级教程
CMake 是一个跨平台的构建工具,用于生成适合不同平台和编译器的构建系统文件(如 Makefile 或 Visual Studio 项目文件)。 在 Windows 下使用 CMake 构建项目时,CMake 会根据 CMakeLists.txt 文件生成适合 Windows 的构建系统文件&…...
IntelliJ IDEA 2023.3.1安装指南从下载到配置的完整教程(附资源下载)
安装 IntelliJ IDEA 2023.3.1 非常简单,以下是详细的安装步骤,适用于 Windows、macOS 和 Linux 系统。 1. 下载 IntelliJ IDEA IntelliJ IDEA下载链接:https://pan.quark.cn/s/3ad975664934 选择适合你的操作系统的版本: Ultimat…...
springboot树形结构 支持模糊查询,返回匹配节点和父节点,其他节点不返回
package com.me.meterdemo.ds; import java.util.ArrayList; import java.util.List;public class TreeNode {private Long id;private String name;private Long parentId;private List<TreeNode> children new ArrayList<>();// 构造方法public TreeNode(Long i…...
linux 命令 touch
Linux 的 touch 命令主要用于 创建空文件 或 修改文件的时间戳(访问时间、修改时间)。以下是其核心用法和实用示例: 基本语法 touch [选项] 文件名... 核心功能 1. 创建空文件 如果文件不存在,则创建空文件;如果存在…...