自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 大模型微调+RAG对话机器人教程(二)

这里要先安装Ollama并激活服务安装完成之后我们使用llama.cpp来把模型文件转化成gguf之后开始写modelfile#温度值设置为0.6,让它严谨一点# 5090 显存很大,咱们把上下文拉高# 设置你微调时的角色设定SYSTEM """你是华中科技大学教务机器人,请你回答学生们的问题。"""# 必须匹配 Qwen2.5 的模板运行之后就可以对话了,可以看出已经成功本地化了。

2026-03-04 22:55:30 286

原创 大模型微调+RAG对话机器人教程(一)

这是一个基于大模型微调的华中科技大学学生手册问答机器人项目

2026-03-02 11:31:23 677

原创 C++学习日记二十--并查集

一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。,都要输出一个结果,如果 a 和 b 在同一集合内,则输出。接下来 m 行,每行包含一个操作指令,指令为。第一行输入整数 n 和 m。

2025-04-30 23:35:40 288

原创 C++学习日记十九---最大异或对

在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?第二行输入 N 个整数 A1~AN。第一行输入一个整数 N。输出一个整数表示答案。

2025-04-29 23:02:24 180

原创 C++学习日记十八---trie字符树

共有 N 个操作,所有输入的字符串总长度不超过10^5,字符串仅包含小写英文字母。,都要输出一个整数作为结果,表示 x 在集合中出现的次数。trie字符树是一种用来高效存储字符串集合的数据结构。接下来 N 行,每行包含一个操作指令,指令为。第一行包含整数 N,表示操作数。

2025-04-23 00:14:32 246

原创 C++学习日记十七---kmp

kmp算法是一种字符串匹配算法,它通过利用已经匹配的部分信息来避免不必要的字符比较,从而提高匹配效率。给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。共一行,输出所有出现位置的起始下标(下标从 0 开始计数),整数之间用空格隔开。求出模式串 P 在字符串 S 中所有出现的位置的起始下标。模式串P 在字符串 S 中多次作为子串出现。第一行输入整数 N,表示字符串 P 的长度。第三行输入整数 M,表示字符串 S 的长度。第二行输入字符串 P。第四行输入字符串 S。

2025-04-18 17:54:28 205

原创 VSCode配置C/C++环境教程

仅作为笔记学习使用。

2025-04-16 16:31:27 18919 4

原创 C++学习日记十六---单调队列

第一行包含两个整数 n 和 k,分别代表数组长度和滑动窗口的长度。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。第一行输出,从左至右,每个位置滑动窗口中的最小值。第二行输出,从左至右,每个位置滑动窗口中的最大值。第二行有 n 个整数,代表数组的具体数值。给定一个大小为 n≤10^6 的数组。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。同行数据之间用空格隔开。

2025-04-07 22:47:55 362

原创 C++学习日记十五---单调栈

共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。第二行包含 N 个整数,表示整数数列。第一行包含整数 N,表示数列长度。1≤数列中元素≤10^9。

2025-04-03 22:41:18 243

原创 C++学习日记十四---模拟栈和模拟队列

模拟栈和模拟队列比较简单,只需要记住栈是后进先出,队列是先进先出就可以了,用数组实现模拟比较简单。现在要对队列进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。操作的查询结果为一个整数,表示栈顶元素的值。所有操作保证合法,即不会在栈为空的情况下进行。操作的查询结果为一个整数,表示队头元素的值。操作都要输出一个查询结果,每个结果占一行。操作都要输出一个查询结果,每个结果占一行。

2025-04-02 19:53:23 358

原创 C++学习日记十三---双链表

题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…双链表和单链表的区别就是多了一条指向前面的指针,主要有三个操作:初始化、插入和删除。现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。第一行包含整数 M,表示操作次数。共一行,将整个链表从左到右输出。

2025-04-01 23:34:30 369

原创 C++学习日记十二---单链表

题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。单链表比较简单,在这里主要使用数组来模拟单链表,有四个操作。第一行包含整数 M,表示操作次数。共一行,将整个链表从头到尾输出。

2025-03-30 23:34:43 360

原创 C++学习日记十一---区间合并

给定 n 个区间 [[l_i,r_i],要求合并所有有交集的区间。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。共一行,包含一个整数,表示合并区间完成后的区间个数。接下来 n 行,每行包含两个整数 l 和 r。注意如果在端点处相交,也算有交集。区间合并没有什么难度,直接看题。输出合并完成后的区间个数。第一行包含整数 n。

2025-03-28 21:18:19 255

原创 C++学习日记十---离散化

我们可以把插入的坐标的索引映射到一个较小的数组中,并且为了方便统一处理,也方便查询,我们需要把查询的坐标也进行映射,只是将查询的视为插入值为0就可以。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r]之间的所有数的和。离散化是把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。共 m 行,每行输出一个询问中所求的区间内数字和。

2025-03-28 20:43:59 143

原创 C++学习日记九---位运算

原理如下:以10为例,求10的二进制第2位的值,将10化成二进制是1010,右移2位之后变成10,然后与1进行与运算就得到了0,也就是10的二进制第2位的值。(以下标从0开始)它的作用是输出一个数字二进制的第一个1以及它之前的数,以10为例,10的二进制表示为1010,-10的二进制表示位0110,1010&0110=10。下面看一道例题给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

2025-03-26 22:57:45 398

原创 C++学习日记八---双指针

双指针的核心是优化,可以通过找数组中的单调把的时间复杂度降低到。下面来看一些例题给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。第一行包含整数 n。第二行包含 n 个整数(均在 0∼10^5 范围内),表示整数序列。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。1≤n≤10^551 2 2 3 53分析这道题目。

2025-03-25 23:12:18 1611

原创 C++学习日记七---差分

差分就是前缀和的逆。先看例题:输入一个长度为 n的整数序列。接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r]之间的每个数加上 c。请你输出进行完所有操作后的序列。这里我们假设有一个数列,以及它的前缀和。并且我们是要在数列s中进行操作。那么如果要使和之间的每个元素都加上c,我们就只需要使加上c即可,同时为了使的之后的元素不变,我们还需要让减c。经过这样操作我们就使得原来的时间复杂度变成了。接下来进行解题。

2025-03-23 21:36:04 1965

原创 C++学习日记六---一二维前缀和

一维前缀和的原理如下:设数列的前n项和为那么显然有,而且知道了原理,接下来来看一道例题。

2025-03-22 22:31:26 561

原创 C++学习日记五---高精度乘除法

高精度乘法的原理如下设那么其中是进位,初始值为0。以此类推可以求出所有的C。下面进行一个简单的举例,求那么从右到左的第1位是以此类推,第2位是第3位第4位第5位第6位综上,得出了从上面这个例子可以看出,当1234中的每一位都乘完了123后,若t还不等于0,那就需要补前导0,但是这样的结果和t自己取余和整除10的结果一样,所以可以化简C1和C2的求值。说明循环的终止条件是1234中的每一位都乘完了123而且t=0。模板1.2例题题目输入格式输出格式数据范围输入样例输出样例代码二、高精度减法

2025-03-22 00:07:57 461

原创 C++学习日记四---高精度加减法

高精度主要考A+B,A-B,A×a,A/a四种情况。一般A和B的长度小于等于,也就是A和B最大可以取到999...999(个9),a小于,也就是a最大可以取到99999999(8个9)。

2025-03-20 23:34:41 708

原创 C++学习日记三---二分

有单调性的整数数列一定可以进行二分,但是可以二分的数列不一定要有单调性。

2025-03-20 00:17:54 761

原创 归并排序的应用---求逆序对的数量

的整数数列,请你计算数列中的逆序对的数量。输出一个整数,表示逆序对的个数。逆序对的定义如下:对于数列的第。,则其为一个逆序对;个整数,表示整个数列。

2025-03-19 09:12:22 280

原创 C++学习日记二---归并排序

是一种稳定的排序算法。归并排序的时间复杂度为。

2025-03-19 08:34:26 356

原创 快速排序应用---第k个数

请用快速选择算法求出数列从小到大排序后的第。的整数数列,以及一个整数。范围内),表示整数数列。个整数(所有整数均在。输出一个整数,代表第。

2025-03-19 08:06:25 246

原创 C++学习日记一---快速排序

跟着y总开始从零学习C++

2025-03-18 23:31:49 352

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除