字符串基础 模式匹配(BF) 字符串:简称,是由字符组成的有限序列。串中所包含的字符个数为,串长为0的串为。指串长与所有对应位置字符都相同的串,空串一定为相等串。子串、子序列:设从原串S某一位置开始,若取S中若干长度的字符,所组成的新串S′即为S的S为S′的,不包含S本身的子串为;若取S中若干长度的字符,所组成的新串S′即为S的后缀:设从原串S某一位置开始,若取S中的所有字符,所组成的新串S′即为S的;是指除S本身外的所有后缀前缀:设从原串S的开始,若取S中若干长度的字符,所组成的新串S。
堆(优先队列) 堆是一种在频繁插入删除情形下,仍能高效获取序列最值的数据结构。堆顶为树根,始终保持所有元素的最优值。堆总是一棵完全二叉树,称为,因此其存储结构中定位其子节点无需left和right。堆可分类为大根堆、小根堆。在堆中的任意节点,其总=(小根堆,greater)其父节点的值。下面以小根堆为例。
SPFA 基于队列优化的Bellman-Ford特点:单源最短路,求解一个源点到其他所有点的最短距离,适用对象:允许负权图和负环图(负环:图上边权之和为负的环)存储结构:链式前向星核心思想:用队列保存松弛边的出度点,调整其邻接点优化思路:进行松弛操作的的邻接点入队sdis∞path−1QincntMinkvsdisvkvsdisvdisuwdisvmindisvdisuw复杂度:一般为OE,最差情况下退化至OVE。
2024睿抗(Raicom)机器人开发者大赛CAIP-编程技能赛-本科组 国赛 真题 分数 15你肯定很奇怪,这看上去代码似乎不像是正常写出来的代码呀?没错,这是这位同学在网络上购买了所谓的“保研综测套餐”,商家为逃避赛后查重,给这位同学发去了经过混淆的代码。然而经过技术支持方的努力,这位同学不仅被封禁,与 TA 购买了相同“套餐”的同学也利用技术手段全部查出,目前主办方已向警方报案,这些同学的“保研”梦很有可能会转变为“案底”梦……因此如果你在比赛前也购买了类似的服务,现在迷途知返还来得及——毕竟这个商家起码还做了一些努力,许多商家号称“一对一”,实际上将一份代码发给了数十位同学……
倍增 ST表 倍增是与二分相反的算法,其核心思想是每次扩大一倍,以2n的速度极大扩展空间。最经典的倍增是2i(实际应为ei流程:定义倍增表gij,其中i代表起始元素索引,j代表倍增组数(该组对应区间长度(包含原元素本身)为2j,该元素在该组中倍增后的位置为i2j−1n个元素最多可倍增log2n组(经验值在20左右)。gijggij−1]]j−1含义:第i个元素倍增j组,等于其倍增j−1组后再倍增j−1组,即i2ji2。
拓扑排序 拓扑排序可视为对图上所有顶点不重不漏的遍历,因此可采用BFS或DFS实现拓扑排序的充要条件是其为DAG(有向无环图),若拓扑排序无解说明图该图不是DAG,因此可对图进行判环若为无向图可看做有向图进行拓扑排序(基环树)复杂度:O(VE。
Bellman-Ford 对边进行操作,求解一个源点到其他所有点的最短距离适用对象:小图,允许负权图和负环图存储结构:直接存边核心思想:反复松弛(最多进行V−1轮),若该边使距离更优则更新sdis∞path−1MinuvV−1disV−1kvsdisvkvsdisvdisuwdisvmindisvdisuwOVEdis。
离散化 离散化适用于在一个较大区间内,只关心数据的相对大小,而不关心数据的绝对大小,通常将较大的区间通过映射缩小到一个较小区间中,用相对值代替绝对值,进行缩小区间范围的技巧,以提升时空效率。哈希表本质上就是利用了离散化的思想。例:{1409,1628,201,1816,1024,108}->{4,5,2,6,3,1}
2024睿抗(Raicom)机器人开发者大赛CAIP-编程技能赛-本科组 省赛 真题 分数 10热҈热҈热҈……最近热得打的字都出汗了!幸好某连锁餐厅开启了气温大于等于 35 度即可获得一杯免费雪碧的活动。但不知为何,在每个星期四的时候,这个活动会暂停一天……现在给定连续的若干天的气温情况以及给定的第一天是星期几,请你算出有多少天你可以喝到免费的雪碧,又有多少天是因为星期四而导致你喝不到雪碧的。
完全背包 背包容量为V,有n种物品,每种物品有无限多个,第i种物品体积为ci,价值为wi,怎样装填背包使总价值最大?实际上,完全背包并不代表每种物品可以真正装填“无限”多个,因为存在背包总体积这一限制因素。
数论基础 群友的问题快速幂关键在于拆分 222=216+4+2=216×24×222^{22}=2^{16+4+2}=2^{16} \times 2^4 \times 2^2222=216+4+2=216×24×2210进制快速幂: 高精次幂的解决方案数论基础取余 % 向下取整取模 mod \bmodmod 向0取整取模性质:a opt b(modp)=(a(modp) opt b(modp))(modp),opt=+,−,×,opt≠/a\,opt\,b\pmod p=(a\pmod