- 博客(236)
- 收藏
- 关注
原创 树状数组 线段树
树状数组计算逆序对, 前面有多少个比当前数大的, 后面有多少个比当前数小的。线段树 : 求数列区间最大值。功能:单点修改 区间查询。
2025-02-11 10:54:29
71
原创 费解的开关
具体表现为两个数若都是0 按位与结果为0,同或结果为1。同或运算:两个位置相同的时候为1,不同为0,按位与 和 同或 是两种不同的运算。按位与:两个位置都为1的时候才为1。第二种(特殊)写两层循环。第一种:写出每一种情况。
2025-02-07 09:14:32
147
原创 关于字符串
Manacher算法可以在O(n)时间复杂度内找到字符串中的最长回文子串,通过在字符串中插入特殊字符,将所有回文子串统一为奇回文形式,从而简化计算。数组,避免在匹配过程中重复比较已匹配的部分,从而高效地找到模式串在主串中的位置。:通过哈希值的快速计算和比较,可以高效地查找一个字符串是否是另一个字符串的子串。:通过计算字符串的哈希值,可以在O(1)时间复杂度内判断两个字符串是否相等。:通过字典树的结构,可以高效地处理与字符串集合相关的查询操作。:字典树可以快速判断一个字符串是否存在于一个字符串集合中。
2025-02-03 14:41:58
209
原创 KMP 最长相等前后缀 斤斤计较的小Z
因为索引是从零开始的,所以前缀的后面一个位置对应的索引就是前缀的长度。当某个位置不匹配的时候将找到前面串的最长相等前后缀的后面。前缀:包含首字母不包含尾字母的所有字串都是前缀。后缀:包含尾字母不包含首字母的所有字串,但是。初始化前后缀相同的时候,前后缀不相同的时候。aabaaf 跳到b。比如abcde的后缀。
2025-02-03 14:23:55
93
原创 二分 机器人的跳跃问题
更新的方式只有两种,左边的mid更新不需要+1;右边的mid更新需要+1。二段性:找到一个值,大于此值的时候都成立,小于的时候都不成立。
2025-02-01 14:59:44
191
原创 位运算 糖果
1<<0结果为000001 第1位编号为0;1<<1结果为0000010第二位编号为1。第一位(从右往左)编号为0;负数转化二进制:负数先看成正数,然后-1,然后每一位取反。左移运算<< 箭头的符号表示 向左移动并且添0。对于非负数左移和右移的效果就是添加几个0;合法状态 :循环的条件为i<(1<<m)与运算,只有都为1的时候结果为1。相反数:取反之后+1得到相反数。位运算中注意编号和位的关系。如1<<3 = 1000。
2025-01-21 23:52:36
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人