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

原创 Manacher(马拉车)算法详解
算法的主要思路是维护一个最右回文子串,利用该区间的对称性,计算当前遍历位置为中心的回文半径,回文半径就是从中心(如果为奇回文串,就包含中心位置)到回文串一端的距离。我们可以再每个字符之间加入特殊字符,奇回文串的中心不变,偶回文串的中心就变成了特殊字符。还有另一种枚举的方法,是中心扩散法,利用了回文串的对称性,枚举每一个字符,然后从中心向两边比较,时间复杂度也为。求最长回文子串的方法,最容易想到的就是暴力枚举,将所有的回文子串都找出来,然后找做大的,时间复杂度就相当高了。,回文串可以分为奇回文串和偶回文串,
2023-07-24 14:30:40
1707
3
原创 Python 大作业/课程设计【免费】
大家玩的时候碰撞判定可能会感觉有些不舒服,但作者已经尽可能优化了,如果有更好的意见,可以提pr。QAQ,不过应付期末大作业足够了。击杀怪物有特殊道具冲击波,可以摧毁碰到的一切。击杀怪物有一个两帧的小动画。截屏截不到,大家可以运行游戏自己看一下。怪物会从上方和左方随机刷新。飞机子弹速度和怪物刷新速度会随着分数的增高而增加。使用 pygame 开发了一个简单的飞机大战的游戏,源码地址。,如果有帮助的话麻烦给个 star。
2024-12-28 16:24:02
183
原创 关于智能指针你应该知道这些
构造不再会出现这样的问题了,因为 C++17 以后要求,函数的每个参数的表达式必须完整执行完,才可以执行其他参数的表达式。使用元素时通常也会用到引用计数,所以如果物理内存相隔比较远,导致不在一个缓存行上,可能会导致多一次的访存。不用考虑内存分配次数的问题,因为没有控制块的存在。但这也会导致原始指针释放的延迟,因为我们不能释放部分的内存,所以只能等所有的。或是第三方的智能指针,甚至手动维护这个原始指针(当然这并不推荐)。更简单的,不用维护控制块,相应的消耗就少。管理,就被跳过了,最终导致内存泄漏。
2024-08-14 23:39:43
624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人