- 博客(48)
- 收藏
- 关注

原创 动态规划题单(持续更新)
考虑从什么状态入手。我们发现不同的操作可能会出现相同的结果序列,那么我们从操作完最后的序列入手。结尾的合法序列有多少种。考虑转移:如果最后一个数以。只能在这个区间内出现,且作为该区间内的极小值。首先读完题可发现的是每个。结尾,那么前一个数只能以。.用前缀和优化转移即可。都有个极长区间,也就是。个数,且最后一个数以。...............
2022-08-12 17:06:36
1164
原创 位置编码(position embedding)
在直角坐标系中,对于向量x和y来说,其点乘满足公式xT⋅y∣∣x∣∣⋅∣∣y∣∣⋅cosγ。这个夹角就是两个向量之间的相对向量。只要两个向量的模长不变,夹角不变,无论在坐标系的哪个位置,点乘的结果就不会发生变化。在线性代数中,矩阵是可以表示线性变换的。对于二位向量x,绕原点旋转m弧度后,变成Rm⋅x。其中,矩阵RmRmcosmsinm−sinmcosm进一步可得到RmT⋅RnRn−m。
2025-07-24 20:26:15
820
原创 cs336 Lecture2
Tensor的内存占用取决于元素的个数以及每个元素的类别Float16在训练过程中由于精度较低的问题,容易出现overflow,underflow。为了解决这个问题,开发了bfloat16。它具有和float32相同的动态范围,但是相应的,精度由小数部分决定,会更差,但是对ML来说不是很重要。
2025-07-21 22:32:18
428
原创 BatchNorm解决梯度消失/爆炸
摘要:协变量偏移指训练和测试数据分布不一致导致模型性能下降。深度神经网络中的内部协变量偏移(ICS)表现为网络层输入分布随训练过程不断变化,导致学习速度变慢和梯度消失问题。BatchNorm通过强制每层输入保持稳定分布(如均值0、方差1)来缓解ICS,但完全标准化会削弱网络表达能力。因此,BatchNorm引入可学习的缩放参数γ和平移参数β,使网络能够自适应地调整最佳数据分布,平衡稳定性和表达能力。(149字)
2025-07-10 19:02:49
147
原创 《attention is all you need》论文精读
本文提出Transformer模型,一种完全基于注意力机制的序列转录架构,摒弃了传统RNN和CNN结构。模型采用编码器-解码器框架,使用多头自注意力机制实现并行计算,解决了RNN时序依赖和CNN长距离依赖问题。关键技术包括:层归一化、残差连接、位置编码和三种正则化方法(子层dropout、嵌入dropout和标签平滑)。实验表明,Transformer在翻译任务上训练更快、效果更好。该工作首次验证了纯注意力机制在序列建模中的有效性,为后续研究奠定了基础。 (字数:149)
2025-07-05 17:21:02
797
原创 朴素贝叶斯算法分类
但是此时如果我们直接输出的话会出现下溢出问题,是由于太多个小数相乘造成的,在python的精度下,太多小数相乘会四舍五入为0,会影响得到正确的答案。一种解决方法是对乘积取自然对数,所以我们可以修改以下代码。但是我们输出结果后会发现基于极大似然估计得朴素贝叶斯算法的结果差强人意,如果其中一个类别的概率值为0,那么最后的乘积也为0,我们可以贝叶斯估计优化算法,在条件概率计算的公式的分子分母上分别加上。也就是将条件概率和先验概率的分子初始化为1,分母初始化为2.代表分类的个数,此样例中为2,即侮辱与非侮辱类。
2024-04-24 11:55:13
907
原创 AtCoder Beginner Contest 319 G - Counting Shortest Paths
中维护集合表示未被遍历到的点,而一个节点在这个集合存在的次数不超过。后我们其实是在其补图上求最短路。
2023-09-10 15:21:43
385
原创 根号分治
那么这样在新的图中的三元环在旧图中也依旧是三元环,不会影响答案。前言:感觉根号分治这种根号类算法的难度在于对题目转化,然后去证明出正确的复杂度(接下来考虑后面的染色,根据代码,如果某个点被更新,那么更新后的距离一定是小于。但是怕被卡,所以我们进行根号分治,只记录。时,可以发现新图中节点的度数不会大于原图。次询问,当前询问增加一层,那么最多会增加。的,所以对于某个点来说,其最多会被更新。个点,那么相邻点之间的最大距离。时,因为原图中节点的度数为。, 新图中节点的出度为。的深度的节点的状态,
2023-08-11 23:11:19
452
原创 一类计数类DP的解法
我们将所有黑色格子先排序,那么我们去固定我们第一个经过的黑色格子的位置,那么所有的子问题将不会有重叠。如果把图中的双连通分量都看成点的话,那么最终形成一颗树,树边连接各个双连通分量。既然是不连通的图,那么必然是若干个连通块形成的,那么我们去枚举节点1所在连通块的大小即可不会造成重复。个格子是黑色的,其它都是白色的,求从左上角走到左下角且不能经过黑色格子的方案数,每次选择向右或下走。的转移:我们以编号最小的节点所在连通块为基准,枚举连通块大小。那么我们仿照之前的做法,枚举1所在的双连通分量的大小。
2023-07-31 23:59:45
402
原创 AtCoder Regular Contest 159
对于这种限制操作次数,而且很明显操作次数会很多的构造题,我们应尽量去找存不存在一个元操作使数组有某种变化,然后复制该操作。那么我们就找到了一个元操作,使得一个位置增加1,一个位置减少1.一个很重要的性质:若一个区间被选,那么选的一定是其一个后缀。:第i个区间必选的最长上升子序列。而且不难发现的是,后面的。,那么我们需要找到一个最小的整数。的前提下将数组所有元素变得相等。次,直接暴力递归求解即可。,我们先随便找一个排列将其变成。的倍数,那么我们暴力枚举。,求能否在操作次数不超过。,操作一次后等价于求。
2023-07-16 18:26:04
404
原创 Codeforces Round 721 (Div. 2) B2. Palindrome Game(博弈)
是偶数,Alice只能先进行操作1,之后Bob每次在对应位置上也进行操作1,保持仍为回文串,当剩最后一个时,Bob进行操作2,Bob获胜。如果cnt时奇数,Alice修改中间位置,此时转化为上述cnt为偶数的情况,Alice获胜。如果不为1,那么Alice依旧可以一直翻转,知道Bob将其补为回文串的时候,修改中间位置,Alice必胜。:Alice可以任意翻转,而Bob必然将字符串补成回文串,在Bob即将将字符串补成回文串的时候,Alice不再翻转,将其补成回文串,此时Alice变为后手,必胜。
2023-07-14 00:13:35
173
原创 势能线段树
我们发现两种操作不会改变数在二进制下的1的个数,且操作2会每次减少一个1。那么如果某个区间的所有数的二进制1的个数为0,那么不再修改,结束递归,否则就一直递归进行单点修改。对于操作3,则相对于二进制下的区间乘。观察数据范围,100以内的质数不到30个,那么我们可以将。,那么直接进行区间乘,否则继续递归修改。那么如果对于某个区间全部含有因子质数。拆分成质数进行区间乘的修改。的数的欧拉函数值的和。的和,操作2:将区间。
2023-07-13 23:50:05
187
原创 AtCoder Beginner Contest 309
的取值最多也就9种。看起来会更好做一点?所以考虑容斥,求出满足至少有一个位置满足。因为我们只关心相对大小,所以我们先对其进行离散化,然后按。枚举到当前长方体时,将离散化后的。转移很好转移,最后利用容斥转一下就可以了。的所以下标对应的值的最小值即可。的长方体,问是否存在两个长方体。,那么我们只需查询小于当前。作为下标,对应的值为。,输出合法的方案数。个位置选的数的状态是。
2023-07-09 16:14:05
440
2
原创 最小异或对
给出一个多重集合,每次可以加一个数,删一个数,或者询问从集合中选出两个数,使其异或和最小。3.如果子树内只有一个元素,记录其值。1.该节点子树内的答案。2.子树内的元素的个数。输出每个询问的答案。
2023-05-18 23:53:39
199
原创 操作系统期末记录
如果另一进程申请该资源,那么申请进程应等到该资源释放为止。个进程应占有至少一个资源,并等待2请求和保持:另一个资源,而该资源为其他进程所占有。4循环等待:存在一种进程资源的循环等待链,链中每个进程已获得的资源同时被链中下一个进程所请求。这种地址变换是依靠硬件地址变换机构实现的,通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变换。是指两个或两个以上的进程在执行过程中,因争守资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
2023-05-18 16:07:16
242
原创 2023天梯赛L3-2 完美树
的代价改变颜色,求将整棵树中黑色节点数量与白色节点数量相差不超过1的最小代价。给定一颗树,每个节点颜色为0,或1,0代表黑色,1代表白色。为根的子树中0、1节点数量相等。若为奇数,我们需要讨论。为根的子树中0节点数量大于1。为根的子树中0节点数量小于1。显然,只有子树大小为偶数时。还有一个问题是假如我们选了。即可,可以看代码如何实现。是偶数,我们只需考虑计算。的颜色,0和1数量相等。,如何选使总代价最小。为奇数,我们考虑转移。
2023-04-23 22:02:00
3454
1
原创 Codeforces Round 863 (Div. 3) G2. Vlad and the Nice Paths (hard version)
那么说明是新一段的第一个数,可以从之前的任意一种颜色转移,但是为了避免复杂度退化成。份,每份的颜色都相同。求长度最长的这样的子序列的个数。,加个小优化,维护一下和就行。,找出一个子序列的长度为。颜色结尾的最大长度,数量。转移的话需要注意的是如果。转移的话也较容易转移。,则将这个子序列分为。个数,最后一个颜色为。
2023-04-20 23:53:45
541
原创 Codeforces Round 862 (Div. 2) D E(树上问题)
那么显然所有的点都是孤立的。否则直径的两个端点肯定在一个连通块内,对于其它点,如果与两个端点在一个连通块内,那么它到两个端点的距离的最大肯定大于。,那么我们求出每个点的最大距离后排序,求出有多少个孤立的点,因为它们如果不能与两个端点在一个连通块,那么一定是一个孤立的点。,那么对于直径的两个端点距离是最远的,那么如果。
2023-04-06 20:31:31
278
原创 第十四届CCPC吉林省赛题解
构建trietrietrie树后建ACACAC自动机的failfailfail树,那么对一个串的后缀的最长公共前缀就是其在failfailfail树节点的父亲节点。那么对于询问1,假设对当前点x1,x2,x3x1,x2,x3x1,x2,x3打上新的标记,其实就相当于在failfailfail树上对于每个点以其为根的子树内打上标记。我们跑dfsdfsdfs序,就等价于区间加标记。为了防止重复加标记,假设x2x2x2在x1x1x1的子树内,那么我们只需对x1x1x1打标记即可。问题就转化为区间修改,单点查询了。
2023-04-05 19:02:19
1219
原创 Educational Codeforces Round 137 (Rated for Div. 2) E. FTL
这两个炮要么是各打各的,也就是一个充能好就立即释放,要么其中一个充能完毕后等着另一个充能,然后一起释放。启发就是:发动攻击之后,二者又同时开始冷却,我们就又回到了最开始的子问题。换句话说,在发动一次共同攻击之前:只要完成冷却,就立即攻击。那么激光2的攻击次数我们也是可以算出来的:在。,在上一次发动共同攻击之后,激光1又攻击了。1.只要某种激光冷却完毕,就立即攻击。2.等待两种激光均冷却完毕,发动攻击。有两个激光炮,充能时间为。求最快击杀怪物的时间。的时间内尽可能多攻击。
2022-10-20 03:21:14
370
1
原创 2022牛客杭电多校dp+字符串题目汇总
我们有一个很明显的最优策略,如果当前摸得牌凑不成对子,那么我们就将其丢弃。每轮从牌堆摸牌,若凑成七对子则赢,游戏结束;,同时也很显然,难点在于如何去设计一个合法且不重不漏的状态。这个不难想到,关键是如何去确定我们构造的是合法且不重不漏。状态转移就没什么难度了,枚举每一位填左括号和右括号即可。打麻将,初始手中有13张牌,相同的牌最多有两张。给定初始手牌,求最优策略下凑成七对子的期望轮数。求最小的区间长度(从1出发),可以从点。张牌的情况下获胜的期望轮数。,如果不选择移动,进入第。,且左括号比右括号多。
2022-10-14 00:14:51
1397
1
原创 Codeforces Round #826 (Div. 3) G. Kirill and Company
跑完之后我们做个简单的背包统计一下最多可以带的人即可。,我们是应该想到状态压缩的。一层一层去扩展,是可以保证最短路的。题目要求了最短路,那么我们选择。
2022-10-12 23:41:48
516
原创 广西师范大学第三次院级程序设计竞赛 B:sort
根据题目的数据范围,我们可以对每个字母建一颗线段树,预估时间复杂度。如果从小到大排列,我们从小到大枚举然后暴力修改即可。
2022-10-12 21:15:14
283
原创 牛客练习赛102 D.一人行者(换根dp)
因为要枚举删去每条边,所以每次枚举显然要。假设我们目前删除的边的两个端点是。,树上问题,很容易想到换根。(观察转移方程即可得到)为根子树的联通子集数量。,只需考虑如何计算节点。接下来我们考虑把根换到。
2022-10-12 00:16:27
387
原创 牛客小白月赛55 F:至至子的公司排队
很显然,公司关系构成了一棵树,该题实质求子树的拓扑序的方案数。个公司,我们建一个虚点作为它们的根。为子树的拓扑序的数量。
2022-10-11 23:47:06
195
原创 2021年ICPC国际大学生程序设计竞赛暨陕西省第九届大学生程序设计竞赛 L:String Games
找出一个子串的字典序比它大且在所有符合的字串中的字典序是最小的。输出其长度和结尾字符。那么我们如果找不到怎么办?那么就直接去找下一个字典序大的后缀。那么我们可以求一下后缀数组,可以很快速的求出其。那么我们转化一下也就是找一个后缀。,那么我们找一个子串长度为。个询问,每次询问一个子串。
2022-09-28 17:48:28
740
原创 树状数组解题报告
有两个数组a[i],b[i]a[i],b[i]a[i],b[i],每次可以交换各个数组中相同的元素,问至少交换多少次后使得∑i=1n(a[i]−b[i])2\sum_{i=1}^{n}{(a[i]-b[i])^2}∑i=1n(a[i]−b[i])2的值最小。这题其实并不难,考的只是简单的逆序对,但是关键是怎么发现是逆序对。我们分析这个式子:∑i=1n(a[i]−b[i])2=a[i]2+b[i]2−2∗a[i]∗b[i]\sum_{i=1}^{n}{(a[i]-b[i])^2}=a[i]^2+b[i]^2
2022-08-03 00:18:27
232
原创 2022牛客寒假算法基础集训营2
首先乘法肯定是优先计算的,那么就启发我们先把乘法运算的数合并起来,看作一个连通块,之后每次修改的时候修改一下连通块的值然后更改答案即可。对于最小值首先如果图中有一个环,那么我们肯定走环,这样会更长,所以我们要少构造有环的边,没有环的话,每个点只能走一次,即。那么我们对一些相邻的牌交换顺序后可以发现,该区间内的所有伤害都可以取到,那么我们二分判断即可。给定一个n个点的完全图,可以给每条边选择方向且每条边最多走一次,求最长路的最大值和最小值。次询问,每次询问会修改某个数字的值,并输出修改后式子的答案。...
2022-07-29 22:55:52
358
原创 2022杭电多校第三场 Two Permutations (dp, 哈希)
中连续的一段子串所放置,那么我们可以预处理哈希然后。,每次可以从两个排列的首位数字选一个插到。的后面,然后该数字从排列中删除,最后可以。中每个数字会出现两次,我们记录每个数字。次出现的位置的方案数。出现的位置,那么在这两个位置中间就是由。,有多少种方案可以构成。中连续的一段是否完全匹配。...
2022-07-26 22:00:34
593
原创 Educational Codeforces Round 132 (Rated for Div. 2) E. XOR Tree
的子树中至少有一个结点需要修改。因为可以修改的值是任意的,所以如果要修改某个结点,那么该结点所经过的简单路径可以不用再考虑(直接当这个子树不存在)。,如果树上任意两个结点之间的简单路径上的权值异或和不为0,则称这颗树是好的。问至少修改几个结点的权值(可修改为任意数)使该树是一颗好树。否则我们就将这个子树合起来,合并过程中采用启发式合并优化,可以使复杂度降到。,先处理其子树,如果子树中存在两个结点的异或和等于。给定一棵树,每个结点有权值。那么我们容易想到,修改。这个结点是最优的选择。...
2022-07-23 22:21:02
195
原创 2022杭电多校 Bowcraft
因为要购买一本书,次数+1;,前面是发生的概率,很好理解,后面的话是发生这种事件的次数,即我们从。因为我们要采取最优策略升级,那么如果我们要想使用该本书升级,那么。的概率使等级降为0。每购买一本书,会等概率的从。级,但是我们依旧购买了这本书,次数+1.商店提供多种升级书,每本升级书有。的概率升一级,如果升级失败,有。,当发生时,我们需要重新升到。越小的书越容易被使用,即书的。1.若使用这本书,则升到。我们成功升一级的期望是。我们不使用这本书升到。假设当前买的书的状态是。...
2022-07-23 16:32:40
343
原创 2022杭电多校 第一场 个人题解(ABCDIHK)
给定一个字符串sss和kkk,求sss的每个前缀子串的所有满足(len∗2−i)%k==0(len*2-i)\%k==0(len∗2−i)%k==0的所有boardboardboard的数量。(lenlenlen为boardboardboard的长度)。既然跟boardboardboard有关,那么很容易想到先对sss建个boardboardboard树,在去思考如何解决问题。观察等式,也就是2∗len≡i(modk)2*len\equiv i(modk)2∗len≡i(modk) ,然后我们开个记录长度为
2022-07-20 19:53:04
2116
9
原创 [HAOI2016]找相同字符(SAM&SA)
给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。两行,两个字符串 s1,s2s_1,s_2s1,s2,长度分别为 n1,n2n_1,n_2n1,n2。该题和这道题很像,可以先去学习一下该题的解法我的博客。我们注意到一个性质:对于两个后缀子串,它们的最长公共前缀就是我们可以取的子串的开头位置在后缀的起点的个数。比如aabb和aaaaaabb和aaaaaabb和aaaa的最长公共前缀是aaaaaa,那么我们可以取的相同子串就是
2022-07-12 00:30:34
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人