- 博客(27)
- 收藏
- 关注
原创 蓝桥最后一月冲刺(3/17) 日期问题
第二步就是设置检测函数,将年月日输入进函数,第一步判断是否是闰年,如果是,那么就进行闰年的判断,先判断月是否符合标准,即不能为0,不能大于12,日不能为0,不能大于闰年的日期,平年也是同理。用来做年份的枚举是完全没问题的。根本原理就是把题目放在中间,题中的实体,就是名字,或者定义(这里形式至上),公式等等,拿线给引上,如果,之后有具体的数与之对应,或者有相互之间的联系,就讲他们放在一块,具体讲解可以看b站上的视频。之后选中g2,g3,g4,选中右下的十字,下拉到g20,这样批量操作就完成了。
2025-03-26 17:24:32
930
原创 食物链(每周一类) 并查集3
如果不在一个集合中,需要注意的是计算距离要将他们的距离算上,新节点到原x父节点的距离是dy-dx,由于这里x和y是同一类,就表示是在一个集合里了。在这之后,如果是1类查询,那么就按照并查集的归并操作来做(将节点指向他们共同的父节点)(具体见。因为新一类表示y吃x,所以,y是x的下一类,y比x离根节点更远一个节点。由题意,我们可知A,B,C三种动物是呈环装互相捕食的关系,所以我们来归并集合的时候,要将他们的距离关系找好。我们假设 A 是在最顶上,其次是B,之后是C,之后还是A,以此循环。初始化说假话的答案。
2024-11-25 21:19:54
470
原创 联通块中点的数量
第一步,来读题,可以知道:第一行输入 n 点的个数和 m 询问的次数,之后是 m 行询问,如果输入是 C ,那么就合并后面的两个集合,如果输入是Q1,那么就输出两个数是否在一个集合,是就Yes,否就No。如代码,相较于并查集,find()函数是必需的,我们需要改的就是在合并的时候先将cnt,也就是记录着点的数量的集合合并,并将它储存在父节点中,由于每个集合的父节点是唯一确定的,所以当要查找集合中节点的个数的时候,就可以找到。分析一下,其实就是并查集加上对于集合中,点的个数的储存,更新和查询。
2024-11-05 20:44:32
393
原创 合并集合(每周一类)
含义就是如果 a 的祖宗节点不指向自己,也就是 a 的上面还有其他的节点,那么就递归地寻找 a 这个集合中最高的那个节点,让 a 的祖宗节点成为最高的那个节点。最后输出找到的那个最高的节点。如果查询a,b是否在一个集合内,那么就查询a和b的祖宗节点是否一致,如果一致,输出Yes,否则No。图中(1)代表一开始1,2节点指向3节点,在(2)中,当 2 节点和 4 节点进行 M 操作(题目中的合并到一个集合中的操作),在p(find(a)) = find(b)操作中,将2和3节点指向了4,但这时1没有改变。
2024-10-21 10:18:51
486
原创 机器学习基础概念(3)
那么对于泛化能力是否有一个标准,比如在未知的1万个数据中,泛化能力 模型一90% > 模型二80% , 我们能说模型一就比模型二好吗?根据NFL原则(没有绝对最好的),我们可以知道,刚刚那句话是不对的,比如对A来说,他需要前100个好就行,其他不重要,但B需要前10000个好,我们需要对他们进行定制不同的模型。上面是直观表示,两条线,一个是真实训练效果,这个是我们训练出来出来对于未来数据的效果,实际上是先欠拟合,之后越来越好,再之后过拟合。比较检验--如何判断实质差别,用什么标准比较模型的差别。
2024-10-13 22:20:35
493
原创 机器学习基础概念(2)
那么,这样就结束了吗,并不是。那么我们给一个样本(青绿,蜷缩,沉闷) ,单单通过上面的版本空间,根据不同的假设,我们可能会得出不同的输出Yes or No ,这并不好,所以就引出了下一个概念,归纳偏好。并不是,这个“简单”,其实并不简单,因为对于简单的比较可能是有很多的,比如。我们可以说第一个简单,因为最高次低,是二次,第二个是三次,也可以说第二个简单,因为第二个只有两项,第一个有三项。强调一件事情,这个版本空间并不是真相,而是我们利用已知数据集逼近真相所获得的产物,只能说真相被包含在版本空间内。
2024-10-11 14:37:48
613
原创 机器学习基础概念
使用数据(与训练用的数据不相同的另一组数据)对于模型进行测试,也就是判断模型产生的结果是否理想的过程。比如一个样本(x, y),样例1数据,其中x表示“青绿,蜷缩,混响”,y表示 “是”。:这个词比较含糊,它可能是说一条数据,比如1数据,它也可能指这些所有的数据的采样,所以要根据上下文进行理解。:这是指最上一面的一排,比如色泽,根蒂等,但注意后面的“好瓜”并不是属性。:表示一条数据,比如图2-1中的1数据,如果没有最后的“是”,它就是一条示例。:比如1数据,如果包括最后的“是”,它就是一条样例。
2024-10-08 21:32:58
454
原创 最大异或对(每周一类)
在查找的时候,如果查找的串存在,就继续,如果不存在,就输出相反字符,比如我们对 101 的 期望是 010,但如果没有 010 ,只有 011,我们就找 011串。时间复杂度是O(n^2)有点太大了,我们要进行优化,方法就是 Trie 树,由于对于每一个数,我们总有办法找到最好的,能匹配它的数,使得他们的异或值最大,如下图,我们找和十进制的 5 匹配的数字,5变成二进制是101,我们要找的就是二进制是010的数字,就是2。在c++中,异或的运算符号是^,比如要计算a异或b,就写 a ^ b 就好。
2024-10-08 21:32:35
506
原创 Trie字符串统计(每周一类)
第一步,理解题意:这道题需要输入一个数字n,表示操作的数量,之后输入n行操作,操作分为两种,一种是插入操作,另一种是查询操作,查询被查询的字符串有多少个,输出数字。,另外说个题外话,本人是从ACwing里学习的算法知识,希望大家支持一下y总(ACwing大佬),如果觉得我这里的知识讲得不够全面,可以去网站里付费学习。,(由于idx是动态增加的,所以在son中的位置也是动态改变的),p = son[p][u];还是比较简单易懂的,就是如果插入,就让值加一,如果查询,就直接输出。左侧的数字表示这个串的数量。
2024-09-12 21:56:04
699
原创 刷题活动(旋转和翻转)
它通过旋转可以得到四种状态,通过翻转加旋转又可以得到四种状态,所以总共就是八种状态,(这里我插进来图片不太好看,大家可以自己手写一下,写一下就很容易就明白了),在题中,如果我们可以一一找出输入的第一个矩阵的八种状态,并对于第二个矩阵做对比,如果有和第二个矩阵相同的,就输出Yes,否则输出No。在这个代码中,最重要的就是翻转 flip 和旋转 rotate 这两个操作,flip 理解起来比较简单,就是左右的字符对换了一下位置,比如abcd1234efgh这个矩阵,就变成了下面这样,以中间为对称轴,来对换。
2024-09-12 21:55:45
554
原创 Kmp字符串算法(每周一类)
比如上面图中的P字符串,ababa,下标分别是12345,下标从1开始,第一个a的重复部分显然没有,所以next[1] = 0,之后的b显然也没有重复的部分 next[2] = 0,第二个a可以找到第一个a作为重复的部分 next[3] = 1,第二个b可以找到ab作为重复的部分,next[4] = 2,之后next[5] = 3。所以,要退回到p[1],p[j + 1]和 s [5] 也不匹配,所以,退到p[0],p[0]没有字符,这时就跳过,从s[6]与p[1]开始匹配,之后一一匹配,直到匹配成功。
2024-08-29 14:57:16
1038
原创 滑动窗口(每周一类)
首先定义q[N],a[N],n(数组长度),k(窗口长度),之后在循环里面,if(hh <= tt && i - k + 1 > q[hh]) hh++;2.(暴力求解).从前向后遍历n-k个数字O(n),得到n-k个窗口,在每一个窗口中求得窗口中的最大值和最小值O(k),最后的时间复杂度是O(n*k)。3.(算法优化).我们寻找窗口移动时的规律,可以将最大值和最小值分开来看,先只找最小值,发现有一些数字总是不会被输出的,他们满足这个性质:在他们同一个窗口中,有数字比他们小。表示将新的数字存入窗口尾部。
2024-08-26 21:33:45
471
原创 表达式求值(每周一类)
由于我们需要将输入的字符串转化,所以需要cstring,由于需要栈,避免自己写出错以及浪费时间,我们需要stack,之后由于需要对于符号列出优先级,所以需要unordered_map。按照写代码的方法,我们一步一步来做,由于审题和数据结构已经选择完毕,我们第一步和第三步的大体是完成了,我们要做的就是将思路转化成代码。再下一步,我们需要递归地一步一步对复杂式子运算,我们要构建一个最简单的运算函数,使得每两个数之间可以进行简单的运算。下一步,我们需要构建两个栈,以便做运算,是两个数字栈和一个符号栈。
2024-08-21 11:09:03
484
原创 单调栈(每日一类)
所以栈,队列并不是之前讲到的那种固定的格式。假设存入3,4,2,7,5这五个数字,现在存到“4”这个数组,我们需要向前遍历数字,找到第一个比7小的数,也就是3,输出3,之后再存入2,找到第一个比2小的数,没有,那就输出-1,之后以此类推,我们看一下时间复杂度(简单来看,其实就是遍历两遍,就是n的平方)老规矩,第一步,我们理解一下题目,嗯,很简单,找出每个数前面第一个比它小的数,如果有,就输出,如果没有,就输出-1,那怎么实现的,朴素的做法肯定是将数一个个存入数组中,然后以这个数为起点,从前往后找。
2024-06-05 11:06:24
788
原创 数组模拟队列(每周一类)
如果同学们把上节课的知识理解了,了解栈的创建,增添,删除,查询,那么队列也是类似的,我们要对于上节课的代码进行的改变,就是针对栈和队列的性质进行的改变。,由于队列是先入先出的,所以删除操作要在头部进行删除,将原来的 t -- 变为 h ++ ,这里理解的重点还是上节课的那句话“ h 和 t 中间的数表示数组中的数”。查询 h + 1 的原因是 h 指针始终指向的数组前面的一个数,另外一提,t 指针指向的是数组最后的一个数,如图中的value3。队列是先入先出的一种数据结构,和栈的进出顺序是相反的结构。
2024-05-30 19:11:21
780
原创 数组模拟单链表(每周一类)
第一句e[idx] = x,即将目前e数组索引的位置的值赋值给x,ne[idx] = head,将第idx个点指向原head头结点所指的结点,head = idx,将head头结点的下一个结点变为idx点,最后将idx ++,指向下一个点。首先,我们知道STL库中有很好用的封装函数,这个我不否认,但要强调的是这些库函数在调用的时候是比较慢的,做算法题常常会超时,这时我们就需要用数组来实现,实际上,我们不仅需要用数组来实现模拟链表,还可能会用数组模拟栈,队列。delate:删除一个结点之后的结点就很简单了。
2024-05-14 21:34:58
738
原创 你的AI大本营——coze(扣子)
个人空间是你创建的bot,插件,工作流,知识库,卡片,这里就是你创作的大本营!左键点进去,就可以进行对话并使用,简单明了。
2024-05-11 21:50:38
1189
1
原创 你的第一个AI绘画工具——奇域
一般我们作为小白,刚开始肯定是不知道如何去绘画,但奇域中有很多交流训练营,其中有队长帮忙带小白,有大佬在群里进行分享。另外,奇域有灵感共创频道,俗话说得好,天下写作一大抄,你抄我,我抄他,AI绘画也是一个道理,你不会,可以偷别人的,偷过来也就是你自己的了。,此工具只需要上线每天签到每签到一次就可以获得100点算力,每1点算力可以画四幅画,换句话说,一天可以画400幅画,而且之前的算力还可以继承给之后,几乎就是可以支持我们普通人源源不断绘画。有想要继续了解的同学可以关注我的最近新办的小红书账号 阿布说说。
2024-05-04 15:56:22
2583
1
原创 基于 InternLM 和 LangChain 搭建你的知识库
众所周知,大模型都是方方面面都懂一些的,但是如果深层次地追问它某一个领域的专业问题,它就会胡说八道,这时我们就可以基于。运行如下图的代码便可快速完成下载(有一个download.py 和 download_hf.py,本文只附了一个图)废话不多说,我们直奔主题。这篇文章简单来说就是基于标题这两个工具构建我们的。之后就是博主自己部署过程中的一些截图,之后会补充讲解文字,时间紧,见谅。一、还是和上一节一样,创建一个新的叫InterLM的环境。因为时间原因,有些仓促,具体文章见。并安装相应所需要的依赖,如图。
2024-02-20 17:56:16
421
原创 运行Demo
还是建议大家参照github上的原链接https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md(需要魔法)中间经历了pip找不到,huggingface找不到,又做了调环境变量,用powershell重新安装等各种方法,基本算是把问题解决了。二、之后下载模型,如使用官方的开发机,使用圈1中的代码,如使用自己的本机或其他开发机,使用圈2中的方式。由于我的电脑内存的缘故,我没有下载完,以下是过程中的图片。
2024-02-20 14:17:07
1250
原创 你的第一个大模型——书生浦语
通过大规模参数的学习,它们可以提高在各种任务上的泛化能力,并在未经过大量特定领域数据训练的情况下实现较好的表现。然而,大模型也面临着一些挑战,比如巨大的计算资源需求、高昂的训练成本、对大规模数据的依赖以及模型的可解释性等问题。是一个轻量级、开源的基于大语言模型的智能体(agent)框架,支持用户快速地将一个大语言模型转变为多种类型的智能体,并提供了一些典型工具为大语言模型赋能。具体的大家可以去看文档和视频,跟着步骤一步步来实施部署,不算很难,即使没有代码基础也可以进行部署,也不是很吃电脑的配置。
2024-02-18 21:39:08
451
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅