- 博客(19)
- 收藏
- 关注
原创 树上启发式合并(dsu on tree)
启发式:启发式算法是基于人类的经验和直观感觉,对一些算法的优化启发式合并:对于两个大小不一样的集合,我们将小的集合合并到大的集合中,而不是将大的集合合并到小的集合中。这是基于人类经验和推理得出的原有合并算法的优化轻重链、轻儿子、重儿子等概念详见树链剖分树链剖分oi-wiki针对某些树上OlognOlognOnlognOnlognO1。
2025-02-18 18:37:29
952
原创 最小距离和与带权最小距离和
将该点往左侧一个整点移动,则原来A左侧点少移L个带权距离,A点右侧多移R+M个带权距离,则增量为R+M-L>=0;数轴上有些点有不同的权重,求数轴上一个整数点x使得所有整数点到x的距离和权重的乘积之和最小,也即求最小带权距离和。数轴上的一个整点A,使得该点左侧(包括A所在的点上的权重)的权重之和恰好大于等于总权重的一半,也即所有数的。假设A左侧权重为L,右侧权重和为R,A上的权重为M;给定一系列整数,求一个整数x使得x在数轴上与所有整数在数轴上的距离和最小。此时该函数的图像一定是(偶数个整数时)
2025-01-23 00:08:25
934
原创 差分约束---将不等式转换为图的算法
概念:已知一个差分约束系统(差分约束系统即一种特殊的n元一次不等式组),形如,要求求出是否存在一组解使得所有约束条件满足。由于在最短路中与该不等式形式相似,因此,可以利用图论,从对应的j点连向i点,并且对应构建出的图,采用bellmanford算法解决带负权负环的问题。判断解的存在性存在负环说明无解;不存在由s到t的路径说明s与t之间不存在约束条件。
2024-09-14 00:30:00
533
1
原创 最最全的短路算法
只有连接到某个点的边参与松弛后,该点才能参与后续的松弛操作,比如可能连接着终点或缩短了起点到其他点的距离,因此每个能够被松弛的点都能入列,否则不能。dp[k][i][j]=min{dp[k-1][i][k]+dp[k-1][k][j],dp[k-1][i][j]}(经过第k个点和不经过第k个点)的二维优化得来。思路:bellman可以判断图上所有的负环存在性,但是针对从某一源点出发可以到达的负环,则可以设置vis以及或运算传递可到达的信息,如以下代码。适用范围:bell-man在时间上的优化,引入了。
2024-09-13 00:15:00
517
原创 ST表(Sparse table)
可重复贡献问题(如rmq问题):是指对于运算opt满足x opt x=x,则对应的区间询问就是一个可重复贡献问题。rmq涉及的运算就是max以及min,同时,对于gcd运算(最大公约数)、按位与、按位或等运算,rmq都能实现对应的静态区间查询。
2024-09-12 00:15:00
713
原创 树链剖分详解
前置概念:size[i]表示节点i的子树大小,其中子树大小定义为包括该点自身的子树含有的节点数个数。轻儿子和重儿子:一个节点儿子中size最大的叫做,剩下的都叫。轻重边:连接x及其重儿子的边叫做重边,同理连接x及其轻儿子的边叫做轻边轻重链:多条重边形成的链叫做重链,且规定每个节点都属于某一条重链。top[i]表示i节点所在重链的顶端的点的编号f[i]表示i节点的父节点编号son[i]表示i节点的重儿子编号,编号为0代表无重儿子d[i]表示i节点的深度,规定根节点深度为1。
2024-09-11 00:45:00
1956
原创 2-SAT问题
如果有解,要求输出可行方案,则可在kosaraju算法中经过第一次dfs求出的trace数组上,从后往前遍历,对于同一个单元的两点,输出排名靠前的那个点即可。因为该数组满足拓扑序,数组后面的点拓扑序一定靠前,也就是说可能可以从数组后面的点推出数组前面的点,这时不妨输出数组前面的点避免矛盾。原题给定n个单位,可以将某单位x为真的点放入1~n的区域内,x为否的点放入n+1~2n的区域,这样方便建边。对于两个命题u和v,u代表真,u'代表假,v同理。,则建立i->i'的一条边,反之。:u'->v且v'->u。
2024-09-10 07:00:00
561
原创 强连通分量
概念:存储带权值边的的数据结构,是邻接表的数组实现;head[i]表示以i为起点的最后一条边的编号,next表示相同起点的上一条边的编号。edge[j]即存储边的结构体数组数组,其中结构体含有终点,权值、以及next。
2024-09-09 19:25:47
486
原创 ACM中的母函数
有一序列a0a1...an,那么生成的母函数就是fxa0a1xa2x2...anxn,但是x不在之后的运用中拥有意义,而是借用x前的系数或其上的指数辅助一系列组合问题的求解。
2024-08-06 20:33:45
1066
原创 后缀数组(SA)最通俗易懂的学习笔记
循环内先对sa进行第二关键字的排序,w同时也是第二关键字相对第一关键字的距离,若原后缀为后缀i,那么其第二关键字就是rk中i+w的位置,此处使用id数组先复制了原来的sa数组,故id[i]+w就相当于每个后缀的第二关键字。那么该前缀和数组中,就记录着从小到大的元素对应的下标所对应的第一次出现的元素的排名,重新遍历原集合中的每一个元素,其在前缀和数组中对应的下标所对应的值就是该元素的排名,排名后需要将前缀和数组中该值减1,若再次出现值相同的另一个元素则赋予它不同的排名以区分相同值的元素。
2024-07-24 11:25:06
1496
原创 强化学习概略笔记
某一阶段最优决策的问题,通过贝尔曼方程转化为下一阶段最优决策的子问题,从而初始状态的最优决策可以由终状态的最优决策(一般易解)问题逐步迭代求解。在MDP的模拟中,智能体会感知当前的系统状态,按策略对环境实施动作,从而按照一定的概率改变环境的状态并得到奖励,奖励随时间的积累被称为回报。在马尔科夫奖励过程的基础上添加了智能体的‘动作’要素,状态转移的概率不仅依赖于当前的状态,还依赖于当前智能体准备做出的动作,奖励同样将依赖于上述两个因素。贝尔曼表现了现在状态的回报与未来的子状态的回报的联系。
2024-07-21 10:51:48
917
原创 人工智能概略学习笔记
是一种利用计算机科学和人工智能技术对音频信号进行处理、分析和理解的方法它以符号形式结构化地描述了物理世界中的概念及其相互关系。知识图谱的基本组成形式为的三元组,实体间通过关系相互联结,构成了复杂的网状知识结构。
2024-07-09 21:46:59
997
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人