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

NO.88十六届蓝桥杯备战|动态规划-多重背包|摆花(C++)

多重背包

多重背包问题有两种解法:

  1. 按照背包问题的常规分析⽅式,仿照完全背包,第三维枚举使⽤的个数;
  2. 利⽤⼆进制可以表⽰⼀定范围内整数的性质,转化成01 背包问题。
    ⼩建议:并不是所有的多重背包问题都能⽤⼆进制优化,⽽且优化版本的代码很⻓。因此,如果时间复杂度允许的情况下,能不优化就不优化
    解法⼀:常规分析
  3. 状态表⽰:
    dp[i][j]表⽰:从前i 个物品中挑选,总重量不超过j 的情况下,最⼤的价值。
    dp[n][m]就是最终结果。
  4. 状态转移⽅程:
    根据第i 个物品选的个数,可以分x[i] + 1种情况:
    a. 选0 个:价值为dp[i - 1][j]
    b. 选1 个:价值为dp[i - 1][j - w[i]] + v[i]
    c. 选2 个:价值为dp[i - 1][j - 2 × w[i]] + 2 × v[i]
    d. …
    e. 选x[i]个:价值为dp[i - 1][j - x[i] × w[i]] + x[i] × v[i]
    因为要的是最⼤价值,所以dp[i][j]等于上述所有情况的最⼤值。但是要注意j-k*w[i]要⼤于等于0,并且不能按照完全背包的⽅式优化。
  5. 初始化:
    全部为0 就不影响最终结果
  6. 填表顺序:
    从上往下每⼀⾏,每⼀⾏从左往右
#include <bits/stdc++.h>
using namespace std;const int N = 110;int n, m;
int x[N], w[N], v[N];
int f[N][N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> x[i] >> w[i] >> v[i];for (int i = 1; i <= n; i++)for (int j = m; j >= 0; j--)for (int k = 0; k <= x[i] && k * w[i] <= j; k++){f[i][j] = max(f[i][j], f[i-1][j - k*w[i]] + k * v[i]);}cout << f[n][m] << endl;return 0;
}

空间优化:

#include <bits/stdc++.h>
using namespace std;const int N = 110;int n, m;
int x[N], w[N], v[N];
int f[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> x[i] >> w[i] >> v[i];for (int i = 1; i <= n; i++)for (int j = m; j >= 0; j--)for (int k = 0; k <= x[i] && k * w[i] <= j; k++){f[j] = max(f[j], f[j - k*w[i]] + k * v[i]);}cout << f[m] << endl;return 0;
}

解法⼆:转化成01背包问题
优化⽅式:⽤⼆进制将x[i]个物品分组。
连续的⼆进制数有⼀个性质,就是 2 0 ∼ 2 k 2^{0}\sim 2^k 202k能够表⽰区间[1, 2^(k+1) - 1]⾥⾯所有的整数。⽐如:

  • 1, 2, 4, 8可以表⽰[1, 15]内所有的整数。具体原因可以参考整数的⼆进制表⽰,正好1, 2, 4, 8对应⼆进制表⽰中每⼀位的权值,所以排列组合起来就可以表⽰[1,15]内所有的整数。
  • 同理1, 2, 4 就可以表⽰[1, 7]内所有的整数。
    根据这样⼀个性质,我们就可以把x[i]拆成⼀些⼆进制数再加上多出来的数,这样的⼀组数就可以表⽰[1,x[i]]内所有的整数,问题就变成了01背包
    ⽐如x[i] = 9,w[i] = 2, v[i] = 3
  • 9 = 1 + 2 + 4 + 2 ;
  • 分成4 组,每组的重量和价值分别为(2, 3)、(4, 6)、(8, 12)、(4, 6)
#include <bits/stdc++.h>
using namespace std;const int N = 110 * 5;int n, m;
int w[N], v[N], pos;
int f[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++){int x, y, z; cin >> x >> y >> z;//2进制拆分int t = 1;while (x >= t){pos++;w[pos] = t * y;v[pos] = t * z;x -= t;t *= 2;}if (x) //处理剩余{pos++;w[pos] = x * y;v[pos] = x * z;}}//01背包for (int i = 1; i <= pos; i++)for (int j = m; j >= w[i]; j--)f[j] = max(f[j], f[j - w[i]] + v[i]);cout << f[m] << endl;return 0;
}
P1077 [NOIP 2012 普及组] 摆花 - 洛谷

题意:每⼀种花可以选[0, a[i]]个,在总数恰好等于m 时的总⽅案数
正好是多重背包求⽅案数的模型,我们可以⽤多重背包的思考⽅式来解决这道题。

  1. 状态表⽰:
    dp[i][j]表⽰:从前i个花中挑选,正好摆放j 个花盆时的⽅案数。
  2. 状态转移⽅程:
    根据第i 种花选的个数k(0 ≤ k ≤ min(j, a[i])) 分情况讨论:
  • 如果当前花选了k 盆,之前的花要去凑够j - k 盆,总的⽅案数就是dp[i - 1][j - k]
  • 因为要的是总⽅案数,所以最终结果应该是k 的变化过程中的状态的总和。
    dp[i][j] = dp[i][j] + dp[i - 1][j - k]
  1. 初始化:
    dp[0][0] = 1 ,相当于起始状态,为了让后续的填表有意义,不然全都是0 。
  2. 填表顺序:
    从上往下每⼀⾏,每⼀⾏从左往右。
    这道题就不能⽤⼆进制优化,因为这道题的背包,限定条件和价值是⼀⼀对应的,并且求的是⽅案数。如果⽤⼆进制优化会统计多余的情况,⽐如:
  • 有两个物品,个数分别是3, 2 ,要凑成总和为4 。
  • 拆分之后为(1, 2)、(1, 1) ,跑⼀遍01 背包之后,结果是 3 ,但是实际情况应该是2 。
  • 原因是1,2,1被统计了2次。但是在实际情况⾥,第⼀个物品全选,第⼆个物品选1个,只属于1种情况,⽽01背包的逻辑会统计两次
#include <bits/stdc++.h>
using namespace std;const int N = 110, MOD = 1e6 + 7;int n, m;
int a[N];
int f[N][N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];f[0][0] = 1;for (int i = 1; i <= n; i++){for (int j = m; j >= 0; j--){for (int k = 0; k <= j && k <= a[i]; k++){f[i][j] = (f[i][j] + f[i-1][j-k]) % MOD;        }}}cout << f[n][m] << endl;return 0;
}

空间优化

#include <bits/stdc++.h>
using namespace std;const int N = 110, MOD = 1e6 + 7;int n, m;
int a[N];
int f[N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];f[0] = 1;for (int i = 1; i <= n; i++){for (int j = m; j >= 0; j--){for (int k = 1; k <= j && k <= a[i]; k++){f[j] = (f[j] + f[j-k]) % MOD;        }}}cout << f[m] << endl;return 0;
}

单独考虑k==0

#include <bits/stdc++.h>
using namespace std;const int N = 110, MOD = 1e6 + 7;int n, m;
int a[N];
int f[N][N];int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];f[0][0] = 1;for (int i = 1; i <= n; i++){for (int j = m; j >= 0; j--){f[i][j] = f[i-1][j];for (int k = 1; k <= j && k <= a[i]; k++){f[i][j] = (f[i][j] + f[i-1][j-k]) % MOD;        }}}cout << f[n][m] << endl;return 0;
}

相关文章:

NO.88十六届蓝桥杯备战|动态规划-多重背包|摆花(C++)

多重背包 多重背包问题有两种解法&#xff1a; 按照背包问题的常规分析⽅式&#xff0c;仿照完全背包&#xff0c;第三维枚举使⽤的个数&#xff1b;利⽤⼆进制可以表⽰⼀定范围内整数的性质&#xff0c;转化成01 背包问题。 ⼩建议&#xff1a;并不是所有的多重背包问题都能…...

vue2添加背景水印-手动实现(无组件模式)

1. App.vue <template><div id"app" class"app"><router-view></router-view></div> </template><script> export default {mounted() {this.updateWatermark();// 监听路由变化this.$router.afterEach(() >…...

华为数通Datacom认证考试难度怎么样?

华为数通Datatcom认证是华为针对数据通信领域推出的技术认证体系&#xff0c;分为‌HCIA&#xff08;初级&#xff09;、HCIP&#xff08;中级&#xff09;、HCIE&#xff08;专家级&#xff09;‌三个等级&#xff0c;考试难度逐级递增&#xff0c;对考生的理论知识和实践能力…...

一文读懂WPF系列之常用控件以及样式

WPF控件 控件分类概览常用控件常用控件代码示例和效果 样式与模板应用样式定义​​方式行内样式​​页面/窗口级资源样式&#xff08;Local Resource&#xff09;应用程序全局资源独立资源字典&#xff08;ResourceDictionary&#xff09;控件模板&#xff08;ControlTemplate&…...

代码随想录算法训练营第十四天

LeetCode题目: 513. 找树左下角的值112. 路径总和106. 从中序与后序遍历序列构造二叉树 其他: 今日总结 往期打卡 513. 找树左下角的值 跳转: 513. 找树左下角的值 学习: 代码随想录公开讲解 问题: 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边…...

国产信创数据库:PolarDB 分布式版 V2.0,支持集中分布式一体化

阿里云PolarDB数据库管理软件&#xff08;分布式版&#xff09;V2.0 &#xff0c;安全可靠的集中分布式一体化数据库管理软件。点此查看详情https://www.aliyun.com/activity/database/polardbx-v2?spma2c6h.13046898.publish-article.8.44146ffaE0lEWT 立即咨询专家&#xf…...

【教学类-102-07】剪纸图案全套代码07——Python点状虚线优化版本+制作1图2图6图

背景需求: 我觉得这个代码里面的输入信息分离太远(42行和241行),想重新优化一下 【教学类-102-05】蛋糕剪纸图案(留白边、沿线剪)04——Python白色(255)图片转为透明png再制作“点状边框和虚线边框”-CSDN博客文章浏览阅读864次,点赞14次,收藏27次。【教学类-102-0…...

基于VSCode的Qt开发‘#include ui_test.h’报错没有该文件

笔者在基于VSCode进行Qt开发时&#xff0c;test.ui文件是在Qt软件中绘制的&#xff0c;导致本项目无法使用这个ui文件&#xff0c;报错如标题。事实上&#xff0c;本工程中也确实没有生成这个头文件。出现这个错误的原因是ui文件没有被编译为c头文件。 要生成 ui_test.h 文件&…...

微信小程序跳2

// 图片压缩 compressImage (image {}, options {}) { return new Promise((resolve, reject) > { const { width 0 } image const { compressAfterSizeFlag false, scaleFlag false, scaleTargetWidth 768 } options // 超过100k压缩 const maxFileSizeLimit 100 …...

如何将excel数据快速导入数据库

最近老是收到一些手工数据&#xff0c;并且需要关联分析&#xff0c;就想到如何快速将数据导入数据库后关联查询输出结果&#xff0c;下面是一段将excel数据写入mysql的脚本&#xff0c;欢迎大家提出优化意见相互学习。 import os import pandas as pd import pymysql import …...

C++之多态

文章目录 一、多态的概念 多态的定义与类型 二、多态的实现 三、虚函数 虚函数的概念 虚函数的重写/覆盖 协变 析构函数的重写/覆盖 override,final关键字 override final 纯虚函数与抽象类 三个概念辨析 四、多态实现的原理 虚函数表指针 动态绑定与静态绑定 …...

从PDF中提取表格:以GB/T2260—2007为例

文章目录 先说结论前因后果思路1、PDF2CSV2、PDF2MD → MD2CSV3、针对不同表格的两种思路1&#xff09; 竖形三线表2&#xff09;五元素为一组 还没结束批量处理1、分割markdown文档2、跳过另一种格式的文档 总结一下 先说结论 结论就是&#xff0c;博主用了一天的时间去研究如…...

日常记录-群晖nas的docker注册表被墙,用Mac电脑的docker拉取镜像并安装到nas中

文章目录 前言一、拉取镜像二、安装到nas中总结 前言 群晖nas的docker注册表被墙&#xff0c;用Mac电脑的docker拉取镜像并安装到nas中 一、拉取镜像 群晖nas的架构师x86&#xff0c;Mac电脑的架构师arm。 在mac电脑中执行命令&#xff1a; # 镜像拉取 docker pull --platf…...

DeepSeek:重构办公效率的AI新范式

目录 一、效率跃迁的三重引擎 二、效率提升的量级突破 三、智能办公的范式转移 四、未来办公的效率奇点 当企业主面对堆积如山的文件审批、跨时区协作的沟通损耗、重复机械的数据整理时&#xff0c;是否想过这些场景正在吞噬团队的生产力&#xff1f;据麦肯锡研究显示&…...

AI小程序+SpringAI+管理后台+源码+支持动态添加大模型+支持动态添加AI应用

前言 今天给大家介绍一款 前端由uniapp开发的小程序&#xff0c;完美在小程序上运行&#xff0c;对话采用流式对话。后端由springbootspringai开发的应用软件源码。 功能简介 支持在管理后台动态新增“DeepSeek”&#xff0c;“openai”&#xff0c;“千帆”&#xff0c;“智…...

RAG的实现快速示例

RAG(Retrieval-Augmented Generation)其实就是结合了检索与生成,核心流程分为 检索(Retrieval) 和 生成(Generation) 两大阶段,通过外部知识库增强生成式模型的准确性和可靠性。 流程其实也很简单,如下图: 关于RAG的基本概念的介绍,可以参考: RAG(检索增强生成)快…...

利用 PHP 爬虫获取京东商品详情 API 返回值说明及代码示例

在电商领域&#xff0c;京东作为国内知名的电商平台&#xff0c;提供了丰富的商品信息。通过调用京东商品详情 API&#xff0c;我们可以获取商品的详细信息&#xff0c;如商品标题、价格、图片、描述等。这些信息对于数据分析、价格监控、商品推荐等场景具有重要价值。本文将详…...

PyTorch CUDA内存管理优化:深度理解GPU资源分配与缓存机制

在深度学习工程实践中&#xff0c;当训练大型模型或处理大规模数据集时&#xff0c;上述错误信息对许多开发者而言已不陌生。这是众所周知的 CUDA out of memory错误——当GPU尝试为张量分配空间而内存不足时发生。这种情况尤为令人沮丧&#xff0c;特别是在已投入大量时间优化…...

大模型基础知识扫盲

1 模型量化&#xff1a; 是什么&#xff1a;大模型量化是一种“压缩”技术&#xff0c;把模型里高精度的数字&#xff08;比如32位浮点数&#xff09;简化成低精度的数字&#xff08;比如8位定点数&#xff09;。 有什么用&#xff1a;它让模型占的空间更小&#xff0c;跑起来…...

《穿透表象,洞察分布式软总线“无形”之奥秘》

分布式系统已成为众多领域的关键支撑技术&#xff0c;而分布式软总线作为实现设备高效互联的核心技术&#xff0c;正逐渐走入大众视野。它常被描述为一条“无形”的总线&#xff0c;这一独特属性不仅是理解其技术内涵的关键&#xff0c;更是把握其在未来智能世界中重要作用的切…...

Python Cookbook-5.13 寻找子序列

任务 需要在某大序列中查找子序列。 解决方案 如果序列是字符串(普通的或者Unicode)&#xff0c;Python 的字符串的 find 方法以及标准库的re模块是最好的工具。否则&#xff0c;应该使用Knuth-Morris-Pratt算法(KMP): def KnuthMorrisPratt(text,pattern): 在序列text中找…...

(自用)蓝桥杯准备(需要写的基础)

要写的文件 led_app lcd_app key_app adc_app usart_app scheduler LHF_SYS一、外设引脚配置 1. 按键引脚 按键引脚配置如下&#xff1a; B1&#xff1a;PB0B2&#xff1a;PB1B3&#xff1a;PB2B4&#xff1a;PA0 2. LCD引脚 LCD引脚配置如下&#xff1a; GPIO_Pin_9 /* …...

STM32Cubemx-H7-14-Bootloader(上)-ST和串口烧录

前言 本文主要研究&#xff0c;如果把ST单片机的SWDIO和SWDCLK引脚改成推挽输出后&#xff0c;我们又应该怎么重新烧录&#xff0c;以及如何使用串口下载。 当没有设置STlink烧录为引脚或者设置成其他功能的时候 如果想恢复&#xff0c;那么就在烧录之前&#xff0c;一直按住…...

“深入浅出:Java中的Lambda表达式及其应用“

前言 Lambda表达式是Java 8引入的一项强大特性&#xff0c;它允许以更加简洁的方式表示匿名函数。Lambda表达式不仅让代码更加简洁、清晰&#xff0c;而且为函数式编程提供了有力支持&#xff0c;从而提升了Java语言的表达能力。 在本文中&#xff0c;我们将深入浅出地探讨La…...

6.1es新特性解构赋值

解构赋值是 ES6&#xff08;ECMAScript 2015&#xff09;引入的语法&#xff0c;通过模式匹配从数组或对象中提取值并赋值给变量。&#xff1a; 功能实现 数组解构&#xff1a;按位置匹配值&#xff0c;如 let [a, b] [1, 2]。对象解构&#xff1a;按属性名匹配值&#xff0c;…...

【从0到1学RabbitMQ】RabbitMQ高级篇

学完基础篇之后我们对用户下单这个业务进行了改造&#xff0c;我们可以吧用户支付这个业务抽出来&#xff0c;放入队列当中去执行。如下图&#xff1a; 但是这里我们思考一下&#xff0c;如果MQ通知失败了&#xff0c;支付服务中支付流水显示支付成功&#xff0c;而交易服务中…...

200 smart pid

PID整定控制面板-S7-200 SMART 跟我学/跟我做之PID功能-系列课程-西门子1847工业学习平台官网 使用西门子200SMART进行PID调节 PID自整定 PID调节技巧_哔哩哔哩_bilibili S7-200 SMART PID PID常见问题...

AI制作PPT,如何轻松打造高效演示文稿

AI制作PPT&#xff0c;如何轻松打造高效演示文稿&#xff01;随着信息化时代的到来&#xff0c;PPT已经成为了几乎所有职场人士、学生、讲师的必备工具。每个人都希望自己的PPT既有创意&#xff0c;又能高效展示信息。而在如今的科技背景下&#xff0c;AI的出现彻底改变了PPT的…...

如何用postman做接口自动化测试?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 本文适合已经掌握 Postman 基本用法的读者&#xff0c;即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求等基本操作。 工作环境与版本&#xff1…...

day29-贪心__134. 加油站__135. 分发糖果__860.柠檬水找零__406.根据身高重建队列

134. 加油站 这道题的贪心方法相当的巧妙。 首先&#xff0c;我们可以通过gas[i] - cost[i]得到第i个站点的净加油量(耗油量)&#xff0c;那么如果我们现在考虑一个从某点a到某点b&#xff0c;那么如果a-》b范围之间的gas[i] - cost[i]存在负数&#xff0c;那么说明无法从a作…...

聊透多线程编程-线程基础-4.C# Thread 子线程执行完成后通知主线程执行特定动作

在多线程编程中&#xff0c;线程之间的同步和通信是一个常见的需求。例如&#xff0c;我们可能需要一个子线程完成某些任务后通知主线程&#xff0c;并由主线程执行特定的动作。本文将基于一个示例程序&#xff0c;详细讲解如何使用 AutoResetEvent 来实现这种场景。 示例代码…...

C# 组件的使用方法

类 Stopwatch 计算时间 Stopwatch sw new Stopwatch(); sw.Start(); // 要执行的代码块 Thread.Sleep(2000);sw.ElapsedMilliseconds // 消耗时间 Console.WriteLine(sw.ElapsedMilliseconds);组件 ListView 属性设置 外观 - View - Details 行为 - Columns -&#xff08;…...

Python常用排序算法

1. 冒泡排序 冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的列表&#xff0c;比较相邻的元素&#xff0c;如果他们的顺序错误就交换他们。 def bubble_sort(arr):# 遍历所有数组元素for i in range(len(arr)):# 最后i个元素是已经排序好的for j in range(0, …...

HTML5 服务器发送事件(Server-Sent Events)

1. 引言 HTML5 服务器发送事件&#xff08;Server-Sent Events&#xff0c;SSE&#xff09;是一种基于 HTTP 的服务器推送技术&#xff0c;允许服务器主动向客户端&#xff08;如浏览器&#xff09;发送实时更新。SSE 适用于单向通信场景&#xff0c;如新闻推送、实时价格更新…...

【C++游戏引擎开发】第12篇:GLSL语法与基础渲染——从管线结构到动态着色器

一、OpenGL渲染管线解密 1.1 OpenGL渲染管线流程图 #mermaid-svg-GrAgLUat95CVZKm0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GrAgLUat95CVZKm0 .error-icon{fill:#552222;}#mermaid-svg-GrAgLUat95CVZKm0 .e…...

阿里云负载均衡可以抗ddos吗

本文深度解析阿里云负载均衡的DDoS防护机制&#xff0c;通过实测数据验证其基础防御能力边界&#xff0c;揭示需结合云盾高防IP实现TB级流量清洗的工程实践。结合2023年Memcached反射攻击事件&#xff0c;提供混合云架构下的多层级防御方案设计指南。 云原生负载均衡的基础防护…...

动手学习:路径规划原理及常用算法

一、路径规划的基本原理 路径规划&#xff08;Path Planning&#xff09;是机器人导航的核心任务&#xff0c;目标是为机器人找到一条从起点到终点的无碰撞路径&#xff0c;同时满足约束条件&#xff08;如最短路径、最优能耗、安全性等&#xff09;。在人形机器人场景中&…...

Web前端性能指标Web3D性能优化

性能指标&评估方式 在Web3D性能优化之前,先了解性能指标&评估方式 前端性能指标评估与监测工具可分为以下几类,结合不同场景和需求,开发者可选择适合的工具进行性能优化: 一、浏览器内置工具 Chrome DevTools Performance 面板:记录运行时性能,分析CPU、内存使…...

Mujoco xml <option>

xml option option总起例子timestep(一般会用到)gravity(一般会用到)windmagneticdensityviscosityo_margino_solref, o_solimpo_frictionintegrator(一般会用到)cone(一般会用到)jacobian(一般会用到)solver(一般会用到)iterations(一般会用到)tolerance(一般会用到)noslip_it…...

如何用 nvm alias default 18.20.8 实现全局 Node.js 版本管理?一篇保姆级指南!!!

&#x1f4dd; 如何用 nvm alias default 18.20.8 实现全局 Node.js 版本管理&#xff1f;一篇保姆级指南 &#x1f680; 1. 核心命令解析 &#x1f50d; nvm alias default 18.20.8 是 nvm 管理工具中用于设置全局默认 Node.js 版本的核心命令。它的作用是将指定版本锁定为所…...

推荐一款Nginx图形化管理工具: NginxWebUI

Nginx Web UI是一款专为Nginx设计的图形化管理工具&#xff0c;旨在简化Nginx的配置与管理过程&#xff0c;提高开发者和系统管理的工作效率。项目地址&#xff1a;https://github.com/cym1102/nginxWebUI 。 一、Nginx WebUI的主要特点 简化配置&#xff1a;通过图形化的界…...

Pytest多环境切换实战:测试框架配置的最佳实践!

你是否也遇到过这种情况&#xff1a;本地测试通过&#xff0c;一到测试环境就翻车&#xff1f;环境变量错乱、接口地址混乱、数据源配置丢失……这些「环境切换」问题简直像定时炸弹&#xff0c;随时引爆你的测试流程&#xff01; 测试人员每天都跟不同的环境打交道&#xff0…...

大模型在网络安全领域的七大应用

1. 高级威胁检测与防御自动化 技术路径&#xff1a; 数据整合&#xff1a;聚合网络流量、终端日志、威胁情报等多源数据&#xff0c;构建多维特征库。行为建模&#xff1a;通过大模型的上下文理解能力&#xff0c;建立正常行为基线&#xff0c;识别偏离模式。动态策略生成&am…...

SpringBoot项目部署之启动脚本

一、启动脚本方案 1. 基础启动方式 1.1 直接运行JAR java -jar your-app.jar --spring.profiles.activeprod优点&#xff1a;简单直接&#xff0c;适合快速测试缺点&#xff1a;终端关闭即终止进程 1.2 后台运行 nohup java -jar your-app.jar > app.log 2>&1 &…...

【spark-submit】--提交任务

Spark-submit spark-submit 是 Apache Spark 提供的用于提交 Spark 应用程序到集群的命令行工具。 基本语法 spark-submit [options] <app-jar> [app-arguments]常用参数说明 应用程序配置 --class <class-name>: 指定应用程序的主类&#xff08;对于 Java/Sc…...

机器学习中的回归与分类模型:线性回归、逻辑回归与多分类

在机器学习领域&#xff0c;回归和分类是两类重要的任务&#xff0c;它们各自有着不同的应用场景和模型构建方式。本文将详细介绍线性回归、逻辑回归以及多分类任务的相关内容&#xff0c;包括数据预处理、模型定义、损失函数的选择以及评估指标的计算。 一、线性回归&#xf…...

spark-rdd

Spark-core RDD转换算子 RDD 根据数据处理方式的不同将算子整体上分为 Value 类型、双 Value 类型和 Key-Value 类型。 Value类型&#xff1a; 1.map 将处理的数据逐条进行映射转换&#xff0c;这里的转换可以是类型的转换&#xff0c;也可以是值的转换 mapPartitions map …...

Python 实现如何电商网站滚动翻页爬取

一、电商网站滚动翻页机制分析 电商网站如亚马逊和淘宝为了提升用户体验&#xff0c;通常采用滚动翻页加载数据的方式。当用户滚动页面到底部时&#xff0c;会触发新的数据加载&#xff0c;而不是一次性将所有数据展示在页面上。这种机制虽然对用户友好&#xff0c;但对爬虫来…...

pytorch TensorDataset与DataLoader类

读取数据 Dataset类 Dataset 是一个读取数据抽象类&#xff0c;所有自定义的数据集类需要继承该类。 该类主要实现以下三个功能 ①如何获取每一个数据及其label --> 抽象方法__getitem()__设置通过对象[索引]的方式获取每一个样本及其label ②告知一共有多少数据 -->…...

AI大模型与知识生态:重构认知的新时代引擎

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:我们如何获得知识,正在被AI彻底改写 从古代图书馆、百科全书,到搜索引擎、问答社区,人类获取知识的方式一直在进化。而随着 ChatGPT、DeepSeek、Grok 等 AI 大模型的到来,这一过程迎来了颠覆…...