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

NO.73十六届蓝桥杯备战|搜索算法-剪枝与优化-记忆化搜索|数的划分|小猫爬山|斐波那契数|Function|天下第一|滑雪(C++)

剪枝与优化

剪枝,形象得看,就是剪掉搜索树的分⽀,从⽽减⼩搜索树的规模,排除掉搜索树中没有必要的分⽀,优化时间复杂度。
在深度优先遍历中,有⼏种常⻅的剪枝⽅法

  1. 排除等效冗余
    如果在搜索过程中,通过某⼀个节点往下的若⼲分⽀中,存在最终结果等效的分⽀,那么就只需要搜索其中⼀条分⽀。
  2. 可⾏性剪枝
    如果在搜索过程中,发现有⼀条分⽀是⽆论如何都拿不到最终解,此时就可以放弃这个分⽀,转⽽搜索其它的分⽀。
  3. 最优性剪枝
    在最优化的问题中,如果在搜索过程中,发现某⼀个分⽀已经超过当前已经搜索过的最优解,那么这个分⽀往后的搜索,必定不会拿到最优解。此时应该停⽌搜索,转⽽搜索其它情况。
  4. 优化搜索顺序
    在有些搜索问题中,搜索顺序是不影响最终结果的,此时搜索顺序的不同会影响搜索树的规模。
    因此,应当先选择⼀个搜索分⽀规模较⼩的搜索顺序,快速拿到⼀个最优解之后,⽤最优性剪枝剪掉别的分⽀。
  5. 记忆化搜索
    记录每⼀个状态的搜索结果,当下⼀次搜索到这个状态时,直接找到之前记录过的搜索结果。
    记忆化搜索,有时也叫动态规划
P1025 [NOIP 2001 提高组] 数的划分 - 洛谷

搜索策略:

  • [1, n]个数放在k 个坑⾥⾯,使的坑⾥⾯的所有数的总和是n ;
  • 其中,不同的坑⾥⾯的数可能相同;
  • 但是[1,2][2,1]是同⼀种分法,因此,应该是⼀种组合型枚举。针对每⼀个坑⾥⾯的数应该放谁的时候,应该从上⼀个坑⾥⾯的数开始枚举。
    剪枝策略:
  • 当我们填了cnt个坑时,此时总和是sum,如果后续坑位全部都填上最⼩值都会超过n。说明我们之前填的数太⼤了,导致后⾯怎么填都会超过n,直接剪掉
  • 如果在进⼊递归之前剪枝,我们不会进⼊⾮法的递归函数中;
  • 但是如果在进⼊递归之后剪枝,我们就会多进⼊很多不合法的递归函数中
#include <bits/stdc++.h>
using namespace std;int n, k;
int path, ret;void dfs(int pos, int begin)
{if (pos == k){if (path == n) ret++; return;}//可行性剪枝//if (path + begin * (k-pos) > n) return;for (int i = begin; i <= n; i++){//可行性剪枝if (path + i * (k-pos) > n) return;path += i;dfs(pos+1, i);path -= i;}
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> k;dfs(0, 1); //填的位置和开始的数cout << ret << endl;return 0;
}
P10483 小猫爬山 - 洛谷

搜索策略:依次处理每⼀只猫,对于每⼀只猫,我们都有两种处理⽅式:

  • 要么把这只猫放在已经租好的缆⻋上;
  • 要么重新租⼀个缆⻋,把这只猫放上去。
    剪枝:
  • 在搜索过程中,我们⽤全局变量记录已经搜索出来的最⼩缆⻋数量。如果当前搜索过程中,已经⽤的缆⻋数量⼤于全局记录的最⼩缆⻋数量,那么这个分⽀⼀定不会得到最优解,剪掉。
  • 优化枚举顺序⼀:从⼤到⼩安排每⼀只猫
    • 重量较⼤的猫能够快速把缆⻋填满,较快得到⼀个最⼩值;
    • 通过这个最⼩值,能够提前把分⽀较⼤的情况提前剪掉。
  • 优化枚举策略⼆:先考虑把⼩猫放在已有的缆⻋上,然后考虑重新租⼀辆⻋
    • 因为如果反着来,我们会先把缆⻋较⼤的情况枚举出来,这样就起不到剪枝的效果了
#include <bits/stdc++.h>
using namespace std;const int N = 20;
int n, w;
int c[N];int cnt; //统计车的数量
int s[N]; //统计每一辆车目前的总重int ret = N;bool cmp(int a, int b)
{return a > b;
}void dfs(int pos)
{//最优性剪枝if (cnt >= ret) return;if (pos > n){ret = cnt;return;}//先安排在已有的车上for (int i = 1; i <= cnt; i++){//可行性剪枝if (s[i] + c[pos] > w) continue;s[i] += c[pos];dfs(pos+1);s[i] -= c[pos]; //恢复现场}//重开一辆cnt++;s[cnt] = c[pos];dfs(pos+1);//恢复现场s[cnt] = 0;cnt--;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> w;for (int i = 1; i <= n; i++) cin >> c[i];//优化搜索顺序sort(c+1, c+n+1, cmp);dfs(1);cout << ret << endl;return 0;
}

记忆化搜索

也是⼀种剪枝策略。
通过⼀个"备忘录",记录第⼀次搜索到的结果,当下⼀次搜索到这个状态时,直接在"备忘录"⾥⾯找结果。
记忆化搜索,有时也叫动态规划

509. 斐波那契数 - 力扣(LeetCode)

在搜索的过程中,如果发现特别多完全相同的⼦问题,就可以添加⼀个备忘录,将搜索的结果放在备忘录中。下⼀次在搜索到这个状态时,直接在备忘录⾥⾯拿值
递归解法

class Solution {
public:int dfs(int n){if (n == 1 || n == 0) return n;return dfs(n-1) + dfs(n-2);}int fib(int n) {return dfs(n);}
};

记忆化搜索

class Solution {int f[35];
public:int dfs(int n){if (f[n] != -1) return f[n];if (n == 1 || n == 0) return n;f[n] = dfs(n-1) + dfs(n-2);return f[n];}int fib(int n) {memset(f, -1, sizeof f);return dfs(n);}
};
P1464 Function - 洛谷

题⽬叙述的⾮常清楚,我们仅需按照「题⽬的要求」把「递归函数」写出来即可。但是,如果不做其余处理的话,结果会「超时」。因为我们递归的「深度」和「⼴度」都⾮常⼤。
通过把「递归展开图」画出来,我们发现,在递归过程中会遇到⼤量「⼀模⼀样」的问题
比如求w(20,20,20)
因此,可以在递归的过程中,把每次算出来的结果存在⼀张「备忘录」⾥⾯。等到下次递归进⼊「⼀模⼀样」的问题之后,就「不⽤傻乎乎的展开计算」,⽽是在「备忘录⾥⾯直接把结果拿出来」,起到⼤量剪枝的效果

#include <bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 25;LL a, b, c;
LL f[N][N][N]; //备忘录LL dfs(LL a, LL b, LL c)
{if (a <= 0 || b <= 0 || c <= 0) return 1;if (a > 20 || b > 20 || c > 20) return dfs(20, 20, 20);if (f[a][b][c]) return f[a][b][c];if (a < b && b < c) return f[a][b][c] = dfs(a, b, c-1) + dfs(a, b-1, c-1) - dfs(a, b-1, c);else return f[a][b][c] = dfs(a-1, b, c) + dfs(a-1, b-1, c) + dfs(a-1, b, c-1) - dfs(a-1, b-1, c-1);
}int main()
{ios::sync_with_stdio(false);cin.tie(0);while (cin >> a >> b >> c){//不需要清空if (a == -1 && b == -1 && c == -1) break;printf("w(%lld, %lld, %lld) = %lld\n", a, b, c, dfs(a, b, c));}return 0;
}
P5635 【CSGRound1】天下第一 - 洛谷

⽤递归模拟整个游戏过程:dfs(x, y) 的结果可以由dfs((x + y) % p, (x + y + y) % p) 得到。
因为测试数据是多组的,并且模数都是p,再加上递归的过程中会递归的相同的问题,所以可以把递归改写成记忆化搜索。其中:

  • f[x][y] = 1 ,表⽰cbw 赢;
  • f[x][y] = 2 ,表⽰zhouwc 赢;
  • f[x][y] = 3 表⽰这个位置已经被访问过,如果没被修改成1 或者2 ,那就表明平局。
    注意事项:
  • 这道题的数据范围很⼤,⽤int类型创建⼆维数组空间会溢出。但是我们的最终结果仅有三种情况,所以可以⽤char类型来存储最终结果,节省空间
#include <bits/stdc++.h>
using namespace std;const int N = 1e4 + 10;
int x, y, p;
char f[N][N]; //备忘录char dfs(int x, int y)
{if (f[x][y]) return f[x][y]; //剪枝f[x][y] = '3'; //这个状态已经访问过了if (x == 0) return f[x][y] = '1';if (y == 0) return f[x][y] = '2';return f[x][y] = dfs((x+y)%p, (x+y+y)%p);
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int T; cin >> T >> p;while (T--){cin >> x >> y;char ret = dfs(x, y);if (ret == '1') cout << 1 << endl;else if (ret == '2') cout << 2 << endl;else cout << "error" << endl;}return 0;
}
P1434 [SHOI2002] 滑雪 - 洛谷

暴⼒枚举:遍历整个矩阵,看看以当前位置为起点,最远能滑⾏多远的距离。在所有情况⾥⾯,取最⼤值即可。
如何求出以[i, j]为起点的最⼤距离?

  • [i,y]位置上下左右瞅⼀瞅,如果能滑过去,就看看以下⼀个位置为起点,最远能滑⾏多远的距离;
  • 找出四个⽅向上的最远距离,然后+1 。
    因为出现相同⼦问题,所以可以⽤dfs来解决。⼜因为在搜索的过程中会遇到⼀模⼀样的问题,因此可以把递归改成记忆化搜索的⽅式
#include <bits/stdc++.h>
using namespace std;const int N = 110;int n, m;
int a[N][N];
int f[N][N]; //备忘录int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};int dfs(int i, int j)
{if (f[i][j]) return f[i][j];int len = 1;//上下左右找for (int k = 0; k < 4; k++){int x = i + dx[k], y = j + dy[k];if (x < 1 || x > n || y < 1 || y > m) continue;if (a[i][j] <= a[x][y]) continue;len = max(dfs(x, y)+1, len);}return f[i][j] = len;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)cin >> a[i][j];int ret = 1;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)ret = max(ret, dfs(i, j));cout << ret << endl;return 0;
}

相关文章:

NO.73十六届蓝桥杯备战|搜索算法-剪枝与优化-记忆化搜索|数的划分|小猫爬山|斐波那契数|Function|天下第一|滑雪(C++)

剪枝与优化 剪枝&#xff0c;形象得看&#xff0c;就是剪掉搜索树的分⽀&#xff0c;从⽽减⼩搜索树的规模&#xff0c;排除掉搜索树中没有必要的分⽀&#xff0c;优化时间复杂度。 在深度优先遍历中&#xff0c;有⼏种常⻅的剪枝⽅法 排除等效冗余 如果在搜索过程中&#xf…...

深度学习总结(2)

神经网络的数据表示 在前面的例子中,我们的数据存储在多维NumPy数组中,也叫作张量(tensor)​。一般来说,目前所有机器学习系统都使用张量作为基本数据结构。张量对这个领域非常重要,重要到TensorFlow都以它来命名。究竟什么是张量呢?张量这一概念的核心在于,它是一个数…...

STM32H7 ADC最大速率

STM32H7 ADC最大速率 硬件限制 封装 在手册 AN5354 中说明了不同封装、不同分辨率的最大速率是不一致的&#xff1b; BGA封装的ADC的速度要快于LQFP封装的速度的&#xff1b; 分辨位数越高、转换时间越长&#xff0c;所以ADC的最大采样速率也就最低&#xff1b; ADC通道模…...

MVC模型

MVC模型&#xff08;Model模型&#xff0c;View视图&#xff0c;Controller控制器&#xff09; 逻辑执行流程&#xff1a; JSP&#xff08;View&#xff09;----》Servlet&#xff08;Controller&#xff09;----》service&#xff0c;dao&#xff0c;pojo&#xff08;Model&a…...

OpenGL ES -> SurfaceView + EGL实现立方体纹理贴图+透视效果

XML文件 <?xml version"1.0" encoding"utf-8"?> <com.example.myapplication.MySurfaceView xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"…...

arthas线上不停机修改bug

安装arthas wget https://alibaba.github.io/arthas/arthas-boot.jar启动&#xff1a; java -jar arthas-boot.jar 启动失败 使用jps也没查到对应的进程 发生错误信息 使用进程id启动&#xff0c;报错 进程id查看使用命令&#xff1a; ps -ef | grep java 详情&#xf…...

#关于require 与 import 相关了解

&#x1f4e6; require 在前端项目中使用&#xff0c;属于 CommonJS 模块规范 的语法&#xff0c;主要用于 Node.js 环境。早期的前端模块打包工具&#xff08;如 Webpack&#xff09;会兼容这种写法&#xff0c;但在现代前端项目&#xff08;如 Vue、React&#xff09;中&…...

【算法应用】基于融合A星-粒子群算法求解六边形栅格地图路径规划

目录 1.粒子群算法PSO原理2.结果展示3.参考文献4.代码获取 1.粒子群算法PSO原理 【智能算法】粒子群算法&#xff08;PSO&#xff09;原理及实现 六边形栅格地图 分析一下地图&#xff1a; 六边形栅格地图上移动可以看做6领域运动&#xff0c;偶数列与奇数列移动方式有所差异…...

【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3源码整体结构解析

【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3源码整体结构解析 文章目录 【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3源码整体结构解析前言代码结构整体data文件结构模型训练超参数配置文件解析数据集配置文件解析 models文件结构utils文件结构runs文…...

R语言:气象水文领域的数据分析与绘图利器

R 语言是一门由统计学家开发的用于统计计算和作图的语言&#xff08;a Statistic Language developed for Statistic by Statistician&#xff09;&#xff0c;由 S 语言发展而来&#xff0c;以统计分析功能见长。R 软件是一款集成 了数据操作、统计和可视化功能的优秀的开源软…...

R语言空间水文气象数据分析:从插值到动态可视化

一、R简介与R 在气象水文中的应用 R语言与 R软件简介R 在各行业的应用概览R 与其他语言的比较及其在数据分析与作图上的优势 R 在地学中的应用以及R 在气象水文中的应用 二、出发之前——用什么来同时记录我们的数据、代码及结果——Rmd与 knitr介绍 介绍一种方便的理念——…...

在Unity中实现《幽灵行者》风格的跑酷动作

基础设置 角色控制器选择&#xff1a; 使用Character Controller组件或Rigidbody Capsule Collider 推荐使用Character Controller以获得更精确的运动控制 输入系统&#xff1a; 使用Unity的新输入系统(Input System Package)处理玩家输入 滑铲实现 public class Slide…...

C# Winform 入门(14)之如何使用线程池

什么是线程&#xff1f; 首先我们要弄明白什么是线程&#xff0c;线程和线程池有啥区别&#xff1f; C# 多线程应用(同步异步)_c# 异步线程-CSDN博客 补充&#xff1a;ManualResetEvent 的使用 ManualResetEvent 是一种线程同步机制&#xff0c;用于控制一个或者多个线程的执…...

I have something to say about Vue Node.js

关于Vue Node.js&#xff0c;我真的说了很多次了&#xff0c;让我难以理解为啥这么粗糙的东西能流行一起。真疯狂的世界。 vue让感觉就像玩猫德一样的&#xff0c;如此的疯狂&#xff0c;天哪。睡觉了 Node.js v13 window7_nodejsv13-CSDN博客...

OpenCV 图形API(17)计算输入矩阵 src 中每个元素的平方根函数sqrt()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 计算数组元素的平方根。 cv::gapi::sqrt 函数计算每个输入数组元素的平方根。对于多通道数组&#xff0c;每个通道会独立处理。其精度大约与内置的 …...

题目练习之set的奇妙使用

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

基于人工智能的医学影像关联分析:利用潜在空间几何混杂因素校正法|文献速递-深度学习医疗AI最新文献

Title 题目 AI-based association analysis for medical imaging using latent-spacegeometric confounder correction 基于人工智能的医学影像关联分析&#xff1a;利用潜在空间几何混杂因素校正法 01 文献速递介绍 人工智能&#xff08;AI&#xff09;已成为各个领域的…...

进程的创建态、运行状态和阻塞状态

今天与大家来聊聊进程的三种状态&#xff1a; 1. 创建态 当需要创建一个新进程时&#xff0c;系统为该进程分配一个进程控制块 PCB&#xff0c;并为该进程分配内存空间&#xff0c;且装入该进程对应的程序和有关的数据&#xff0c;这时&#xff0c;一个新进程就产生了。 2. …...

科普:GRU、LSTM及RNN

GRU&#xff08;门控循环单元&#xff09;、LSTM&#xff08;长短期记忆网络&#xff09;、RNN&#xff08;循环神经网络&#xff09;均为处理序列数据的神经网络模型&#xff0c;它们之间存在着紧密的联系与明显的差异。 我们重点看一下GRU&#xff0c;并比较它们。 一、GRU算…...

java+postgresql+swagger-多表关联insert操作(七)

入参为json&#xff0c;然后根据需要对多张表进行操作&#xff1a; 入参格式&#xff1a; [{"custstoreName":"swagger-测试经销商01","customerName":"swagger-测试客户01","propertyNo":"swaggertest01",&quo…...

如何将/dev/ubuntu-vg/lv-data的空间扩展到/dev/ubuntu-vg/ubuntu-lv的空间上

要将 /dev/ubuntu-vg/lv-data 的空间扩展到 /dev/ubuntu-vg/ubuntu-lv 上&#xff0c;实际上是将 lv-data 的空间释放出来&#xff0c;并将其分配给 ubuntu-lv。以下是详细的步骤和操作说明&#xff1a; 已知信息 你有两个逻辑卷&#xff1a; /dev/ubuntu-vg/lv-data/dev/ubun…...

No module named ‘keras.engine‘

目录 报错代码&#xff1a; tensorflow-gpu安装 2024.01.05 keras和tf版本对应关系&#xff1a; 报错代码&#xff1a; try:from keras.src.engine import base_layer, data_adapterfrom keras.src.engine.training import _disallow_inside_tf_function, _get_verbosity, …...

python应用之使用pdfplumber 解析pdf文件内容

目录标题 1. 通过 pdfplumber.open() 解析复杂PDF&#xff1a;1-2. 报错&#xff1a;V2 &#xff1a; v3 使用tk 库运行环境准备完整代码保存运行测试步骤方式二&#xff1a;命令行方式&#xff08;适用于自动化&#xff09; 测试用例示例常见问题排查1. 无文件选择对话框弹出&…...

【学Rust写CAD】36 颜色插值函数(alpha256.rs补充方法)

源码 pub fn alpha_lerp(self,src: Argb, dst: Argb, clip: u32) -> Argb {self.alpha_mul_256(clip).lerp(src, dst)}这个函数 alpha_lerp 是一个颜色插值&#xff08;线性插值&#xff0c;lerp&#xff09;函数&#xff0c;它结合了透明度混合&#xff08;alpha_mul_256&…...

[GN] 通讯协议 - Uart

系列文章目录 sigrokdecode 模块学习指南 — 准备阶段 文章目录 系列文章目录前言通讯协议Uart通讯协议什么是UartUART通信协议 其他协议后续待更 前言 在阅读libsigrokdecode源码之前&#xff0c;先学习通讯协议。so hard&#xff01;&#xff01; 通讯协议 Uart通讯协议 …...

C# 状态模式深度解析:构建灵活的状态驱动系统

一、状态模式概述 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为&#xff0c;使对象看起来像是修改了它的类。这种模式将特定状态相关的行为局部化&#xff0c;并且将不同状态的行为分割开来。 状态…...

MySQL学习笔记四

第六章过滤数据 6.1使用WHERE子句 输入&#xff1a; SELECT job_id, job_title FROM jobs WHERE min_salary4200; 输出&#xff1a; 说明&#xff1a;在需要特定数据时需要根据条件对数据库中的数据进行过滤&#xff0c;即指定搜索条件&#xff08;过滤条件&#xff09;&a…...

Node环境安装

1.下载安装 作为开发使用&#xff0c;追求长期运行的Node环境&#xff0c;建议选择LTS版本(长期支持稳定版)&#xff0c;本地测试可以选择最新版本。首先&#xff0c;访问Node.js官网下载安装程序&#xff0c;好在官网默认就有下载链接&#xff1a; 直接点击下载即可&#xff…...

浏览器自动化操作AI工具-browser-use

一、项目概述 Browser-Use 是一个将大型语言模型&#xff08;LLM&#xff09;与浏览器自动化结合的开源工具&#xff0c;旨在通过AI代理实现智能化的网页交互操作。其核心目标是为开发者提供一种无需编写复杂脚本即可完成网页自动化任务的解决方案&#xff0c;支持从数据抓取到…...

极氪汽车云原生架构落地实践

云原生架构落地实践的背景 随着极氪数字业务的飞速发展&#xff0c;背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验&#xff0c;并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。 为快速响应用户的需求&#xff0c;例如…...

[ctfshow web入门] web16

信息收集 提示&#xff1a;对于测试用的探针&#xff0c;使用完毕后要及时删除&#xff0c;可能会造成信息泄露 试试url/phpinfo.php url/phpsysinfo.php url/tz.php tz.php能用 点击phpinfo&#xff0c;查看phpinfo信息&#xff0c;搜索flag&#xff0c;发现flag被保存为变量…...

沧州铁狮子

又名“镇海吼”&#xff0c;是中国现存年代最久、形体最大的铸铁狮子&#xff0c;具有深厚的历史文化底蕴和独特的艺术价值。以下是关于沧州铁狮子的详细介绍&#xff1a; 历史背景 • 铸造年代&#xff1a;沧州铁狮子铸造于后周广顺三年&#xff08;953年&#xff09;&#…...

【Android Sdk】uiautomatorviewer.bats闪退问题如何解决?

目录 一、uiautomatorviewer.bats闪退 1. 报错场景 2. 问题原因 3. 解决方法 前言 具体操作 一、uiautomatorviewer.bats闪退 1. 报错场景 SDK的tools文件夹中uiautomatorviewer.bat双击闪退不能打开&#xff0c;直接双击uiautomatorviewer.bat闪退。 双击打不开uiaut…...

Redis7——进阶篇(八)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…...

蓝桥杯 封闭图形个数 刷题笔记

分析 写一个node结构 定义两个数一个存数值 一个存图形个数 分解每个输入的数 的每一位 为每个输入的数赋值一个封闭图形个数的值作为判断依据 重写 cmp函数作为 sort的判断依据 #include<iostream> #include<bits/stdc.h> using namespace std; const int N…...

AI大模型底层技术——结合 Prompt Engineering 的 LoRA

目录 1. 结合 Prompt Engineering 的 LoRA&#xff1f; (1) 定义 (2) 核心思想 2. 核心功能 3. 对比传统通用微调 4. 技术要素 (1) Prompt Engineering (2) LoRA 微调 (3) Prompt & LoRA 协同优化 5. 难点及解决 6. 技术路径 7. 具体技术实现 8. 应用场景 9. …...

7-Zip如何创建分卷压缩文件,进行分批压缩?

相信很多小伙伴在传输文件时会选择先压缩成7-Zip等压缩包后再传输&#xff0c;但如果压缩的文件过大大&#xff0c;传输速度就会很慢&#xff0c;或者上传压缩文件到云盘时也会受到文件大小的限制。 要解决以上问题&#xff0c;我们可以 把文件压缩成多个标准的压缩包&#xf…...

【蓝桥杯省赛】 02 包子凑数

题目描述 小明想知道包子铺用给定的蒸笼规格能凑出多少种无法组成的包子数目。若无法组成的数目无限&#xff0c;输出 INF。 输入格式 第一行为整数 N N N&#xff08;蒸笼种数&#xff09;接下来 N N N 行每行一个整数 A i A_i Ai​&#xff08;每种蒸笼的包子数&#x…...

人工智能通识速览(Part3. 强化学习)

三、强化学习 1. 基本概念 强化学习是机器学习中的一个重要领域&#xff0c;它涉及智能体&#xff08;agent&#xff09;如何在环境中采取一系列行动&#xff0c;以最大化累积奖励。以下是关于强化学习的详细介绍&#xff1a; 智能体&#xff1a;是一个能够感知环境并采取行动…...

深度解析LinkedList工作原理

引言 在 Java 编程中&#xff0c;集合框架是处理数据存储和操作的强大工具。LinkedList 作为其中的重要成员&#xff0c;为我们提供了一种灵活的列表实现方式。与 ArrayList 基于数组的实现不同&#xff0c;LinkedList 采用链表结构&#xff0c;这使得它在某些操作上具有独特的…...

excel的逻辑类型函数(主要包括if、and、or、not、xor、iserror、iferror、true、false、ifs、ifna、switch)

目录 1. IF 函数2. AND 函数3. OR 函数4. NOT 函数5. XOR 函数6. ISERROR 函数7. IFERROR 函数8. TRUE 与 FALSE9. IFS 函数10. IFNA 函数11. SWITCH 函数 1. IF 函数 功能&#xff1a; 根据指定条件判断结果&#xff0c;如果条件为 TRUE&#xff0c;则返回一个值&#xff1b;…...

数据驱动金融韧性升级,开启数据交换“新范式”:构建“实时、国产化强适配”的数据交换与共享平台

在金融行业&#xff0c;数据不只是“资产”&#xff0c;更是贯穿风控、合规、营销与运营的核心“生命线”。而在数字化加速与信创战略并行推进的当下&#xff0c;金融行业对于“实时数据流通”的需求从未如此迫切。 面对业务复杂性提升、国产化替代加速&#xff0c;以及监管科…...

cpp自学 day20(文件操作)

基本概念 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放 通过文件可以将数据持久化 C中对文件操作需要包含头文件 <fstream> 文件类型分为两种&#xff1a; 文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的…...

Qt饼状图在图例上追踪鼠标落点

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、饼状图的关键接口二、关键代码1.鼠标移动事件2.核心判断逻辑 总结 前言 最近做了一个项目&#xff0c;需要当鼠标在饼状图上移动的时候展示Slice的内容&am…...

ZKmall开源商城服务端验证:Jakarta Validation 详解

ZKmall开源商城基于Spring Boot 3构建&#xff0c;其服务端数据验证采用Jakarta Validation API​&#xff08;原JSR 380规范&#xff09;&#xff0c;通过声明式注解与自定义扩展机制实现高效、灵活的数据校验体系。以下从技术实现、核心能力、场景优化三个维度展开解析&#…...

操作系统概述(3)

批处理系统 1.单道批处理系统 单道批处理系统是成批地处理作用&#xff0c;并且始终只有一道作业在内存中的系统。优点&#xff1a;提高系统资源的利用率和系统吞吐量。缺点&#xff1a;系统中的资源得不到充分利用。 2.多道批处理系统 引入多道程序设计技术&#xff0c;是…...

深入理解 Object.entries():基础用法与 Object.keys() 的核心区别

深入理解 Object.entries()&#xff1a;基础用法与 Object.keys() 的核心区别 一、Object.entries() 是什么&#xff1f; Object.entries() 是 JavaScript 中的一个内置方法&#xff0c;用于将对象的 ‌可枚举属性‌&#xff08;自身的、非继承的&#xff09;转换为一个数组。…...

GitHub 趋势日报 (2025年04月06日)

GitHub 趋势日报 (2025年04月06日) 本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ &#x1f4c8; 今日整体趋势 Top 10 排名项目名称项目描述今日获星语言1microsoft/markitdownPython tool for converting files and office documents to Markdown.⭐ 548Py…...

Visual Studio 中使用 Clang 作为 C/C++ 编译器时,设置优化选项方法

在 Visual Studio 中使用 Clang 作为 C/C 编译器时&#xff0c;可以通过以下方法设置优化选项&#xff1a; 方法 1&#xff1a;通过项目属性设置&#xff08;推荐&#xff09; 右键项目 → 属性 配置属性 → C/C → 优化 优化&#xff1a;选择优化级别 /O0 - 禁用优化&#x…...

现场测试的特点与测试设备的基本要求

在各类测试场景中&#xff0c;现场测试有着不可替代的作用。不过&#xff0c;它也面临着诸多难题&#xff0c;对测试设备也有着特殊要求。今天&#xff0c;咱们就深入探讨一下现场测试的特点与测试设备的基本要求。 现场测试的特点 场地电磁环境噪声问题 建议环境噪声低于…...