- 博客(25)
- 收藏
- 关注
原创 大模型微调+RAG对话机器人教程(二)
这里要先安装Ollama并激活服务安装完成之后我们使用llama.cpp来把模型文件转化成gguf之后开始写modelfile#温度值设置为0.6,让它严谨一点# 5090 显存很大,咱们把上下文拉高# 设置你微调时的角色设定SYSTEM """你是华中科技大学教务机器人,请你回答学生们的问题。"""# 必须匹配 Qwen2.5 的模板运行之后就可以对话了,可以看出已经成功本地化了。
2026-03-04 22:55:30
286
原创 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
原创 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++学习日记五---高精度乘除法
高精度乘法的原理如下设那么其中是进位,初始值为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
原创 归并排序的应用---求逆序对的数量
的整数数列,请你计算数列中的逆序对的数量。输出一个整数,表示逆序对的个数。逆序对的定义如下:对于数列的第。,则其为一个逆序对;个整数,表示整个数列。
2025-03-19 09:12:22
280
原创 快速排序应用---第k个数
请用快速选择算法求出数列从小到大排序后的第。的整数数列,以及一个整数。范围内),表示整数数列。个整数(所有整数均在。输出一个整数,代表第。
2025-03-19 08:06:25
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
4