- 博客(26)
- 收藏
- 关注
原创 【深度学习】Transformer梳理
对于transformer,网上的教程使用记号、术语不一。最关键的一点,网上各种图的简化程度不一,所以我打算自己手画一次图。**注意:**全连接层在概念上输入必须是一维向量,但是实际实现的时候我们会采用批处理将多个样本的向量组拼成矩阵,用矩阵乘法加速运算。如果用单一样本的向量来标注全文可能更清晰,但是为了更贴近实用,约定全文的输入长这个样子而不是向量:其实,输入也不是矩阵。。。输入是3维张量,三个维度分别是batch_size, number(当前用到的词数), dimension(特征维度)
2024-05-29 03:02:03
1728
4
原创 图论基础入门
存图方式一共有三种:邻接矩阵、邻接表、前向星纯前向星还需要再加上排序的时间复杂度(当排序不是主要复杂度时适用),如果快排,时间复杂度是O(n log n),可以用别的排序方式优化,即基数排序(不写纯前向星了,事实上,不用排序也能模仿出来前向星的核心思路,即,链式前向星也是最常用的存图方式邻接矩阵邻接表(链式前向星)邻接表(vector存边)
2024-04-08 22:30:47
569
原创 并查集及其优化方法
仔细思考求解最短路径的算法多了什么冗余的东西,我们不需要知道具体路径是什么,也不需要知道最短路径的长度,我们只需要知道能不能走过去,我们甚至不需要知道两个人互相怎么称呼对方,我们只需要知道。不知道你是否这样思考过,如果每个树只有两级,上面是代表元素,下面是在这个集合里的元素,这些元素与代表元素直接相连就好了,这样每次查询都是O(1)那么我们可以用某个代表元素指代集合,如果没有特殊元素的情况下,这个“代表”可以随意指派,此时,这个问题由图转变为了树,先讲按树的大小合并,即元素少的合并到元素多的上去。
2024-02-23 20:15:28
847
1
原创 P1036 [NOIP2002 普及组] 选数 题解
已知n个整数x1x2⋯xn,以及1个整数kkn从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n4k34个整数分别为37121937122237192971219383121934现在,要求你计算出和为素数共有多少种。371929。
2024-02-07 17:23:42
971
1
原创 P1028 [NOIP2001 普及组] 数的计算 题解
给出正整数nn请你求出,一共有多少个合法的数列。两个合法数列ab不同当且仅当两数列长度不同或存在一个正整数i≤∣a∣,使得aibi。
2024-02-07 17:23:13
840
1
原创 P5587 打字练习 题解
R 君在练习打字。有这样一个打字练习网站,给定一个范文和输入框,会根据你的输入计算准确率和打字速度。可以输入的字符有小写字母、空格和(英文句号),输入字符后,光标也会跟着移动。输入的文本有多行,R 君可以通过换行键来换行,换行后光标移动到下一行的开头。R 君也可以按退格键(为了方便,退格键用表示),以删除上一个打的字符,并将光标回移一格。特殊的,如果此时光标已经在一行的开头,则不能继续退格(即忽略此时输入的退格键)。需要注意的是,回车键不会被计入正确的字符个数。R 君看到网站上显示他花了T。
2024-02-07 17:21:56
643
1
原创 Ubuntu网络代理不一致报错处理
vsode:error while fetching extensions.XHR failednet::ERR_PROXY_CONNECTION_FAILED
2024-01-27 11:20:48
1137
1
原创 P1219 [USACO1.5] 八皇后 Checker Challenge 面向过程和面向对象题解
一个如下的6×6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列246135来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号123456列号246135这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请输出前3个解。最后一行是解的总个数。
2023-10-14 23:51:41
67
1
原创 快速排序和归并排序
输入n1≤n5000000且n为奇数)个数字ai1≤ai109),输出这些数字的第k小的数。最小的数是第0小。请尽量不要使用来写本题,因为本题的重点在于练习分治算法。
2023-10-13 00:51:47
64
原创 动态规划Dynamic Programming
分治算法会做许多不必要的工作,它会反复地求解那些公共子子问题。而动态规划算法对每个子子问题只求解一次,将其解保存在一个表格中,从而无需每次求解一个子子问题时都重新计算,避免了这种不必要的计算工作。————《算法导论》下文将只谈重点内容动态规划简称dp,有三大性质:1.重叠子问题2.最优子结构3.无后效性那么动态规划全部的难度在于问题,使其具备三大性质能,并,那么问题就算是解决了(因为这两步是核心步骤)
2023-08-13 19:24:07
551
2
原创 [NOIP1999 普及组] 导弹拦截 题解
想要过这个需要n log n做法,如果dp暴力是n平方显然过不了,要用贪心+二分直接dp,好处是能够得知LIS序列,缺点是时间复杂度O(n)贪心+二分,好处是时间复杂度O(n log n),缺点是只知道LIS长度,不知道具体序列注意看这句话“缺点是只知道LIS长度”,无论dp还是贪心,都要满足无后效性我们只要考虑怎么从过去的烂摊子转移到现在的情况就可以了,如何转移?
2023-08-12 00:13:23
105
1
原创 拓扑排序Topological Sort
拓扑排序用于有向无环图(DAG),作用是给出一个序列,使得任何一条边总是起点比终点在序列中出现的位置靠前拓扑排序原理是每次找到入度为0的点,把它放进拓扑排序的序列中,然后把这个点和这个点引出的边全部删掉(当然,一个图的拓扑序不是唯一的,只要起到功效就可以了)这个排序在没碰见它的题之前就会觉得这毫无用处,举个例子,拓扑排序可以用于动态规划动态规划需要满足些什么条件?无后效性而拓扑排序像什么?过关斩将,“给出一个序列,使得任何一条边总是起点比终点在序列中出现的位置靠前”这句话恰好是无后效性的体现。
2023-08-11 15:28:22
131
1
原创 常见排序算法
首先C++不是必须需要学会排序这个东西的,但是有时候如果要一边排序、一边干点东西,或者有什么严苛的要求,那就得会手写排序这属于模板性的东西。
2023-07-22 10:03:06
105
1
原创 C++指针入门
1.“ * ”是将地址转化为变量的值“ & ”是取变量的地址那么对于一个数据有“三态”,下图展现一下:既然“*”和“&”是相反的两种用法,那么是可以叠加使用的可以看出b的就a的。
2023-07-16 19:50:30
47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人