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

纯个人整理,蓝桥杯使用的算法模板day4(图论 最小生成树问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个

目录

  • 最小生成树
    • Prim
      • 代码
      • 模拟流程图
    • kruskal
      • 代码
    • 代码对应实现案例

最小生成树

最小生成树:在无向图中求一棵树(n-1条边,无环,连通所有点),而且这棵树的边权和最小
(ps:可能结果不止一种)

Prim

算法思路
Prim算法从一个顶点开始,每次选择与顶点权重最小的边。(“点”为核心,适合稠密图,因为稠密图“边”多)

附带Prim模拟流程图,实际有两个解,具体可看文章最后,但两个解顶点权重总和相同,因此求出一种结果即可,保证实际应用绝对正确,大家也可学习作者是如何进行模拟,期待能够帮助你
(ps:最小生成树模拟量过于庞大,模拟了整整四页,有部分涂改,请见谅,但可保证改正后的一定正确,因此读者可主要看prim算法,另一个算法写的过于繁杂)
看在作者完整模拟的份上,可以求个赞、收藏与关注(比心)

代码

import java.util.Arrays;public class PrimMST {// 定义无穷大常量(用MAX_VALUE的一半防止加法溢出)private static final int INF = Integer.MAX_VALUE / 2;public static int prim(int[][] graph) {int n = graph.length;        // 图的顶点数量int[] dist = new int[n];     // 存储各顶点到最小生成树(MST)的最小距离boolean[] visited = new boolean[n]; // 标记顶点是否已加入MSTArrays.fill(dist, INF);      // 初始化所有距离为无穷大dist[0] = 0;                 // 从顶点0开始,到自身的距离为0int totalWeight = 0;         // MST的总权重// 需要选择n个顶点加入MSTfor (int i = 0; i < n; i++) {// 步骤1:找到未访问顶点中距离MST最近的顶点u,若找到,则添加进最小生成树(如i=4时,只剩V2与V5未访问过,并且此时dist = [0, 5, 1, 4, ,6 , 2],dist[1](V2)到最小生成树的距离为5,dist[4](V5)到最小生成树的距离为6,因此最近的顶点为V2,并添加进最小生成树中)int u = -1; // 初始化为-1表示未找到for (int j = 0; j < n; j++) {// 如果顶点j未访问,且(u未改变 或 j的距离更小)if (!visited[j] && (u == -1 || dist[j] < dist[u])) {u = j; // 更新最近顶点}}// 如果最近顶点的距离仍是INF,说明图不连通if (dist[u] == INF) return -1;visited[u] = true;       // 标记u已加入MSTtotalWeight += dist[u];  // 累加边权重// 步骤2:更新u的邻接顶点到MST的最短距离(如从顶点V1开始时,到顶点V2的距离是6,但i=1的遍历中,找到最近顶点为V3时,此时最小生成树(V1与V3)到V2的最短距离更新为了5)for (int v = 0; v < n; v++) {// 如果v未访问,且u-v有边,且该边比当前记录的距离更小if (!visited[v] && graph[u][v] != INF && graph[u][v] < dist[v]) {dist[v] = graph[u][v]; // 更新距离}}}return totalWeight;}public static void main(String[] args) {// 定义图的邻接矩阵(6个顶点)int[][] graph = {// 0  1  2  3    4    5{0, 6, 1, 5, INF, INF},    // 顶点0的边{6, 0, 5, INF, 3, INF},    // 顶点1的边{1, 5, 0, 4, 6, 4},        // 顶点2的边{5, INF, 4, 0, INF, 2},    // 顶点3的边{INF, 3, 6, INF, 0, 6},    // 顶点4的边{INF, INF, 4, 2, 6, 0}     // 顶点5的边};System.out.println("Prim MST Weight: " + prim(graph));}
}

模拟流程图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

kruskal

加边之前,考虑“加边”的两个端点是不是已经连通,若已连通,则不加(“边”为核心,适合稀疏图)

代码

import java.util.Arrays;
import java.util.Comparator;public class KruskalMST {// 定义边类(起点、终点、权重)static class Edge {int src, dest, weight;public Edge(int src, int dest, int weight) {this.src = src;    // 起点this.dest = dest;  // 终点this.weight = weight; // 边权重}}// 定义并查集的子集类static class Subset {int parent; // 父节点int rank;   // 秩(用于优化)}// 查找根节点(带路径压缩)private static int find(Subset[] subsets, int i) {if (subsets[i].parent != i)subsets[i].parent = find(subsets, subsets[i].parent); // 路径压缩return subsets[i].parent;}// 合并两个集合(按秩合并)private static void union(Subset[] subsets, int x, int y) {int xroot = find(subsets, x);int yroot = find(subsets, y);// 将小秩树合并到大秩树下if (subsets[xroot].rank < subsets[yroot].rank) {subsets[xroot].parent = yroot;} else if (subsets[xroot].rank > subsets[yroot].rank) {subsets[yroot].parent = xroot;} else {subsets[yroot].parent = xroot;subsets[xroot].rank++; // 秩相同时,合并后秩+1}}public static int kruskal(int[][] graph) {int V = graph.length; // 顶点数Edge[] edges = new Edge[V*V]; // 边列表(最坏情况下全连接)int edgeCount = 0;     // 实际边数计数器// 将邻接矩阵转换为边列表for (int i = 0; i < V; i++) {for (int j = i+1; j < V; j++) { // 只遍历上三角避免重复if (graph[i][j] != INF) {   // 如果存在边edges[edgeCount++] = new Edge(i, j, graph[i][j]);}}}// 裁剪边数组到实际大小edges = Arrays.copyOf(edges, edgeCount);// 按边权重升序排序Arrays.sort(edges, Comparator.comparingInt(o -> o.weight));// 初始化并查集Subset[] subsets = new Subset[V];for (int v = 0; v < V; v++) {subsets[v] = new Subset();subsets[v].parent = v; // 初始时每个顶点是自己的父节点subsets[v].rank = 0;    // 初始秩为0}int totalWeight = 0;    // MST总权重int selectedEdges = 0;   // 已选边数int i = 0;              // 当前处理的边索引// 当已选边数 < V-1 且还有未处理的边时继续while (selectedEdges < V - 1 && i < edges.length) {Edge nextEdge = edges[i++]; // 取出当前最小权重边int x = find(subsets, nextEdge.src);  // 查找起点所在集合int y = find(subsets, nextEdge.dest); // 查找终点所在集合// 如果不在同一集合(不会形成环)if (x != y) {union(subsets, x, y);         // 合并集合totalWeight += nextEdge.weight; // 累加权重selectedEdges++;              // 已选边数+1}}return totalWeight;}public static void main(String[] args) {// 定义与Prim相同的图int[][] graph = {{0, 6, 1, 5, INF, INF},{6, 0, 5, INF, 3, INF},{1, 5, 0, 4, 6, 4},{5, INF, 4, 0, INF, 2},{INF, 3, 6, INF, 0, 6},{INF, INF, 4, 2, 6, 0}};System.out.println("Kruskal MST Weight: " + kruskal(graph));}
}

代码对应实现案例

左侧为原无向图,右侧为两种最小生成树的求解结果
在这里插入图片描述

相关文章:

纯个人整理,蓝桥杯使用的算法模板day4(图论 最小生成树问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个

目录 最小生成树Prim代码模拟流程图 kruskal代码 代码对应实现案例 最小生成树 最小生成树&#xff1a;在无向图中求一棵树&#xff08;n-1条边&#xff0c;无环&#xff0c;连通所有点&#xff09;&#xff0c;而且这棵树的边权和最小 &#xff08;ps&#xff1a;可能结果不止…...

学习笔记,DbContext context 对象是保存了所有用户对象吗

DbContext 并不会将所有用户对象保存在内存中&#xff1a; DbContext 是 Entity Framework Core (EF Core) 的数据库上下文&#xff0c;它是一个数据库访问的抽象层它实际上是与数据库的一个连接会话&#xff0c;而不是数据的内存缓存当您通过 _context.Users 查询数据时&…...

Kafka 和 Flink的讲解

一、Kafka&#xff1a;分布式消息队列 1. 核心概念 ​​角色​​&#xff1a;Kafka 是一个分布式、高吞吐量的​​消息队列​​&#xff08;Pub-Sub 模型&#xff09;&#xff0c;用于实时传输数据流。​​关键术语​​&#xff1a; ​​Producer​​&#xff08;生产者&…...

Kafka 高吞吐量的原因是什么?

Kafka 的高吞吐量是它成为“数据中枢”的关键特性之一&#xff0c;这背后是多个技术设计的巧妙配合。下面我给你整理一下 Kafka 高吞吐量的主要原因&#xff0c;通俗又系统。 ✅ 1. 顺序写磁盘&#xff08;磁盘也能飞&#xff09; Kafka 的消息写入是追加到日志末尾&#xff…...

基于Python+Flask的服装零售商城APP方案,用到了DeepSeek AI、个性化推荐和AR虚拟试衣功能

首先创建项目结构&#xff1a; fashion_store/ ├── backend/ │ ├── app/ │ │ ├── __init__.py │ │ ├── models/ │ │ ├── routes/ │ │ ├── services/ │ │ └── utils/ │ ├── config.py │ ├── requirements.t…...

26.[MRCTF2020]Transform 1

打开文件是可执行程序.exe&#xff0c;打开看一下&#xff0c;顺便拖入ExeinfoPE 查询一下基本信息。如图。 无壳&#xff0c;且是64-bit&#xff0c;打开执行文件也没有什么特别的信息。那就 IDA-x64 分析吧。 &#x1f197;&#xff0c;简单的一个加密&#xff0c;我们直接逆…...

LeetCode-98. 验证二叉搜索树

一、题目 给定一个二叉树&#xff0c;判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b; 若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它的…...

【LeetCode Solutions】LeetCode 146 ~ 150 题解

CONTENTS LeetCode 146. LRU 缓存&#xff08;中等&#xff09;LeetCode 147. 对链表进行插入排序&#xff08;中等&#xff09;LeetCode 148. 排序链表&#xff08;中等&#xff09;LeetCode 149. 直线上最多的点数&#xff08;困难&#xff09;LeetCode 150. 逆波兰表达式求值…...

leetcode二叉树刷题调试不方便的解决办法

1. 二叉树不易构建 在leetcode中刷题时&#xff0c;如果没有会员就需要将代码拷贝到本地的编译器进行调试。但是leetcode中有一类题可谓是毒瘤&#xff0c;那就是二叉树的题。 要调试二叉树有关的题需要根据测试用例给出的前序遍历&#xff0c;自己构建一个二叉树&#xff0c;…...

【家政平台开发(16)】消息通知系统设计:搭建高效沟通桥梁

本【家政平台开发】专栏聚焦家政平台从 0 到 1 的全流程打造。从前期需求分析&#xff0c;剖析家政行业现状、挖掘用户需求与梳理功能要点&#xff0c;到系统设计阶段的架构选型、数据库构建&#xff0c;再到开发阶段各模块逐一实现。涵盖移动与 PC 端设计、接口开发及性能优化…...

AI比人脑更强,因为被植入思维模型【44】成长破圈思维

giszz的理解&#xff1a;芒格说&#xff0c;不懂不投。我们一生都在追求破圈&#xff0c;突破本我&#xff0c;突破舒适圈、恐惧圈、学习圈、成长圈、自在圈&#xff0c;可是我们真正能懂的知识有实际真的太少了。这个思维模型给我的启迪&#xff0c;一是要破圈&#xff0c;二是…...

【JavaWeb-Spring boot】学习笔记

目录 <<回到导览Spring boot1. http协议1.1.请求协议1.2.响应协议 2.Tomcat2.1.请求2.1.1.apifox2.1.2.简单参数2.1.3.实体参数2.1.4.数组集合参数2.1.5.日期参数2.1.6.(重点)JSON参数2.1.7.路径参数 2.2.响应2.3.综合练习 3.三层架构3.1.三层拆分3.2.分层解耦3.3.补充 &…...

基于GitLab+Jenkins的持续集成实践指南

架构设计原则 分层自动化策略 基础层: 代码提交触发自动构建(100%自动化)中间层: 制品生成与验证(自动化+人工审核)发布层: 环境部署(受控手动触发)工具定位矩阵 工具核心职责关键优势GitLab源码管理+MR流程精细的权限控制Jenkins流水线编排+任务调度插件生态丰富Nexus制…...

用HTML.CSS.JavaScript实现一个贪吃蛇小游戏

目录 一、引言二、实现思路1. HTML 结构2. CSS 样式3. JavaScript 逻辑 三、代码实现四、效果展示 一、引言 贪吃蛇是一款经典的小游戏&#xff0c;曾经风靡一时。今天&#xff0c;我们将使用 HTML、CSS 和 JavaScript 来实现一个简单的贪吃蛇小游戏。通过这个项目&#xff0c…...

医疗思维图与数智云融合:从私有云到思维图的AI架构迭代(代码版)

医疗思维图作为AI架构演进的重要方向,其发展路径从传统云计算向融合时空智能、大模型及生态开放的“思维图”架构迭代,体现了技术与场景深度融合的趋势。 以下是其架构迭代的核心路径与关键特征分析: 一、从“智慧云”到“思维图”的架构演进逻辑 以下是针对医疗信息化领域…...

Kafka 中,为什么同一个分区只能由消费者组中的一个消费者消费?

在 Kafka 中&#xff0c;同一个分区只能由消费者组中的一个消费者消费&#xff0c;这是 Kafka 的设计决策之一&#xff0c;目的是保证消息的顺序性和避免重复消费。这背后有几个关键的原因&#xff1a; 1. 保证消息顺序性 Kafka 中的每个 分区&#xff08;Partition&#xff…...

Kafka 中的批次

在 Kafka 中&#xff0c;批次&#xff08;Batch&#xff09; 是生产者发送消息的一个重要概念。它对 Kafka 的性能、吞吐量、延迟等有很大影响。批量处理可以使消息发送更高效&#xff0c;减少网络往返和磁盘写入的开销。 下面我将详细解释 Kafka 中的批次机制&#xff0c;包括…...

《UNIX网络编程卷1:套接字联网API》第7章:套接字选项深度解析

《UNIX网络编程卷1&#xff1a;套接字联网API》第7章&#xff1a;套接字选项深度解析 一、套接字选项核心原理 1.1 选项层级体系 套接字选项按协议层级划分&#xff08;图1&#xff09;&#xff1a; SOL_SOCKET&#xff1a;通用套接字层选项IPPROTO_IP&#xff1a;IPv4协议层…...

使用 pytest-xdist 进行高效并行自化测试

pytest-xdist 是 pytest 的一个扩展插件&#xff0c;主要用于实现测试用例的并行执行和分布式测试。通过利用多进程或者多机分布式的方式&#xff0c;pytest-xdist 能够显著缩短测试执行时间&#xff0c;提升持续集成&#xff08;CI&#xff09;流程的效率。 在自动化测试中&a…...

谈谈策略模式,策略模式的适用场景是什么?

一、什么是策略模式&#xff1f;​​ 策略模式&#xff08;Strategy Pattern&#xff09;属于​​行为型设计模式​​。核心思路是将一组​​可替换的算法​​封装在独立的类中&#xff0c;使它们可以在运行时动态切换&#xff0c;同时使客户端代码与具体算法解耦。它包含三个…...

网络安全防御核心原则与实践指南

一、四大核心防御原则 A. 纵深防御原则&#xff08;Defense in Depth&#xff09; 定义&#xff1a;通过在多个层次&#xff08;如网络、系统、应用、数据&#xff09;设置互补的安全措施&#xff0c;形成多层次防护体系。 目的&#xff1a;防止单一漏洞导致整体安全失效&…...

动态规划2——斐波那契数列模型——三步问题

1.题目 三步问题。有个小孩正在上楼梯&#xff0c;楼梯有 n 阶台阶&#xff0c;小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法&#xff0c;计算小孩有多少种上楼梯的方式。结果可能很大&#xff0c;你需要对结果模 1000000007。 示例 1&#xff1a; 输入&#xff1a;n 3 …...

周末总结(2024/04/05)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意&#xff0c;执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内&#xff0c;职场社交不要放在5min以外 职场的人际关系在面对利…...

常见的图像生成算法

综合技术原理、优化方向和应用场景&#xff0c;结合经典模型与前沿进展进行分述&#xff1a; 一、经典生成模型 1. 生成对抗网络&#xff08;GAN&#xff09; 原理&#xff1a;由生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;通过…...

PE结构(十五)系统调用与函数地址动态寻找

双机调试 当需要分析一个程序时&#xff0c;这个程序一定是可以调试的&#xff0c;操作系统也不例外。在调试过程中下断点是很重要的 当我们对一个应用程序下断点时&#xff0c;应用程序是挂起的。但当我们对操作系统的内核程序下断点时&#xff0c;被挂起的不是内核程序而是…...

verilog状态机思想编程流水灯

目录 一、状态机1. 状态机基本概念2. 状态机类型3. Verilog 状态机设计要点 二、状态机实现一个1s流水灯三、DE2-115实物演示 一、状态机 1. 状态机基本概念 状态机&#xff08;Finite State Machine, FSM&#xff09;是数字电路设计中用于描述系统状态转换的核心组件&#x…...

Java实现N皇后问题的双路径探索:递归回溯与迭代回溯算法详解

N皇后问题要求在NN的棋盘上放置N个皇后&#xff0c;使得她们无法互相攻击。本文提供递归和循环迭代两种解法&#xff0c;并通过图示解释核心逻辑。 一、算法核心思想 使用回溯法逐行放置皇后&#xff0c;通过冲突检测保证每行、每列、对角线上只有一个皇后。发现无效路径时回退…...

#SVA语法滴水穿石# (000)断言基本概念和背景

一、前言 随着数字电路规模越来越大、设计越来越复杂,使得对设计的功能验证越来越重要。首先,我们要明白为什么要对设计进行验证?验证有什么作用?例如,在用FPGA进行设计时,我们并不能确保设计出来的东西没有功能上的漏洞,因此在设计后我们都会对其进行验证仿真。换句话说…...

【Android Studio 下载 Gradle 失败】

路虽远行则将至&#xff0c;事虽难做则必成 一、事故现场 下载Gradle下载不下来&#xff0c;没有Gradle就无法把项目编译为Android应用。 二、问题分析 观察发现下载时长三分钟&#xff0c;进度条半天没动&#xff0c;说明这个是国外的东西&#xff0c;被墙住了&#xff0c;需…...

贪心算法之Huffman编码

1. 算法推理 Huffman 编码的目标是为给定字符构造一种前缀码&#xff0c;使得整体编码长度最短。基本思想是&#xff1a; 贪心选择&#xff1a;每次选择频率最小的两个节点合并。合并后的节点的权值为两个子节点权值之和&#xff0c;代表这部分子树出现的总频率。 局部最优导…...

Flask学习笔记 - 表单

表单处理 基本表单处理&#xff1a;使用 request.form 获取表单数据。使用 Flask-WTF&#xff1a;结合 WTForms 进行表单处理和验证&#xff0c;简化表单操作。表单验证&#xff1a;使用验证器确保表单数据的有效性。文件上传&#xff1a;处理文件上传和保存文件。CSRF 保护&a…...

指针的补充(用于学习笔记的记录)

1.指针基础知识 1.1 指针变量的定义和使用 指针也是一种数据类型&#xff0c;指针变量也是一种变量 指针变量指向谁&#xff0c;就把谁的地址赋值给指针变量 #include<stdio.h>int main() {int a 0;char b 100;printf("%p,%p \n", &a,&b); // …...

【mongodb】mongodb的字段类型

目录 1. 基本数据类型1.1 String1.2 Number1.3 Boolean1.4 Date1.5 Null1.6 ObjectId1.7 Array1.8 Binary Data1.9 Object 2. 特殊数据类型2.1 Regular Expression2.2 JavaScript2.3 Symbol2.4 Decimal1282.5 Timestamp2.6 MinKey/MaxKey2.7 DBPointer 3. 常用字段类型示例4. 注…...

计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作

计算机视觉图像处理基础系列&#xff1a;滤波、边缘检测与形态学操作 一、前言二、滤波&#xff1a;图像的精细化处理​2.1 滤波基础概念​2.1.1 滤波的本质​2.1.2 图像噪声来源与类型​ 2.2 线性滤波​2.2.1 均值滤波​2.2.2 高斯滤波​ 2.3 非线性滤波​2.3.1 中值滤波​ 三…...

实用的alias别名命令——比2=1+1简单的基础命令

目录 alias命令的用处alias命令的写法让alias别名永久存在的办法下篇预告 alias命令的用处 别名&#xff0c;就是linux系统中的命令的别称&#xff0c;而alias命令&#xff0c;可以显示linux系统当前设定的全部别名&#xff0c;当然&#xff0c;也可以自己定义一个别名。 ali…...

JAVA单例模式

目录 一、什么是单例模式&#xff1a; 二、饿汉模式&#xff1a; 代码示例&#xff1a; 饿汉模式的特点&#xff1a; 三、懒汉模式&#xff1a; 正确代码示例&#xff08;双重检查锁&#xff09;&#xff1a; 一、什么是单例模式&#xff1a; 一个类&#xff0c;在语法角度…...

k8s安装cri驱动创建storageclass动态类

部署nfs服务器 #所有k8s节点安装nfs客户端 yum install -y nfs-utils mkdir -p /nfs/share echo "/nfs/share *(rw,sync,no_root_squash)" >> /etc/exports systemctl enable --now nfs-serverhelm部署nfs的provisioner&sc 所有k8s节点安装客户端 yu…...

嵌入式Linux驱动—— 1 GPIO配置

目录 1.GPIO操作 1.1 IO命名 1.2 GPIO 时钟使能&#xff08;CCM&#xff09; 1.3 IO 复用&#xff08;IOMUXC&#xff09; 1.4 IO 配置 1.5 GPIO 配置 1.GPIO操作 GPIO操作主要是以下流程&#xff1a; 使能某组GPIO模块&#xff08;GPIO1、2、...&#xff09;&#…...

【C++11】lambda

lambda lambda表达式语法 lambda表达式本质是一个匿名函数对象&#xff0c;跟普通函数不同的是它可以定义在函数内部。lambda表达式语法使用层而言没有类型&#xff0c;所以一般是用auto或者模板参数定义的对象去接收lambda对象。 lambda表达式的格式&#xff1a;[capture-l…...

自旋锁(C++实现)

1 简介 自旋锁是一种典型的无锁算法&#xff0c;在任何时刻&#xff0c;它都最多只能有一个保持者。当有一个线程试图获得一个已经被占用的锁时&#xff0c;该线程就会一直进行循环等待&#xff0c;直到该锁被释放。自旋锁的优点是不会使线程状态发生切换&#xff0c;一直处于用…...

python基础-11-调试程序

文章目录 【README】【11】调试【11.1】抛出异常【11.1.1】抛出异常代码块 【11.2】获取回溯字符串【11.2.1】traceback获取异常回溯信息 【11.3】断言【11.3.1】断言代码示例 【11.4】日志&#xff08;使用logging模块&#xff09;【11.4.1】使用logging模块操作日志【11.4.3】…...

我的创作历程:从不情愿到主动分享的成长

&#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 二、转变&#xff1a;从被动到主动的心路历程 三、挑战&#xff1a;时间的压力与写作的坚持 四、收获&#xff1a;分享与成长 五、展望…...

uniapp地图导航及后台百度地图回显(v2/v3版本)

百度地图申请地址&#xff1a;控制台 | 百度地图开放平台 效果&#xff1a; 1.后台 1.1申请百度地图APi 1.2 引入百度地图 <script type"text/javascript" src"//api.map.baidu.com/api?v3.0&ak自己百度生气apikey"></script> 1.3 v2组…...

多layout 布局适配

安卓多布局文件适配方案操作流程 以下为通过多套布局文件适配不同屏幕尺寸/密度的详细步骤&#xff0c;结合主流适配策略及最佳实践总结&#xff1a; 一、‌创建多套布局资源目录‌ ‌按屏幕尺寸划分‌ 在 res 目录下创建以下文件夹&#xff08;根据设备特性自动匹配&#xff…...

马斯克 AI 超算

超算建设情况&#xff1a;马斯克旗下人工智能初创公司 xAI 正在田纳西州孟菲斯市建造世界上最大的超级计算机2。自 2024 年 6 月首次宣布这笔工程以来&#xff0c;xAI 已向当地规划和发展机构提交了 14 份施工许可申请&#xff0c;合计代表了 4.059 亿美元的预计项目成本2。该超…...

大模型学习四:‌DeepSeek Janus-Pro 多模态理解和生成模型 本地部署指南(折腾版)

一、说明简介 ‌DeepSeek Janus-Pro‌是一款先进的多模态理解和生成模型&#xff0c;旨在实现高质量的文本-图像生成与多模态理解。它是由DeepSeek团队研发的&#xff0c;是之前Janus模型的升级版&#xff0c;能够同时处理文本和图像&#xff0c;即可以理解图片内容&#xff0c…...

《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么

第3篇&#xff1a;大模型的能力边界&#xff1a;它能做什么&#xff0c;不能做什么 摘要 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经成为许多领域的核心技术。然而&#xff0c;尽管它们展现出了惊人的能力&#xff0c;但也有明显的局限性…...

MySQL 面试知识点详解(索引、存储引擎、事务与隔离级别、MVCC、锁机制、优化)

一、索引基础概念 1 索引是什么&#xff1f; 定义&#xff1a;索引是帮助MySQL高效获取数据的有序数据结构&#xff0c;类似书籍的目录。核心作用&#xff1a;减少磁盘I/O次数&#xff0c;提升查询速度&#xff08;以空间换时间&#xff09;。 2 索引的优缺点 优点缺点加速…...

JS API

const变量优先 即对象、数组等引用类型数据可以用const声明 API作用和分类 DOM (ducument object model) 操作网页内容即HTML标签的 树状模型 HTML中标签 JS中对象 最大对象 document 其次大 html 以此类推 获取DOM对象 CSS 中 使用选择器 JS 中 选多个 时代的眼泪 修…...

hackmyvm-Principle

近况: 很难受、 也很累。 但是庆幸靶机很好 正值清明时节 清明时节雨纷纷 &#x1f327;️&#xff0c;路上行人欲断魂 &#x1f622;。 靶机地址 信息收集 主机发现 端口扫描 80端口仅仅是一个nginx 的欢迎界面而已 robots.txt的内容 hi.html的内容 hackme不存在 investigat…...