- 博客(8)
- 收藏
- 关注
原创 屑曾的ACM笔记(4)——逆元
def 逆元(inv):如果:则:此时c称为a的逆元。逆元的作用就是在取模环境下让除法运算仍然维持正常。举例:计算(modp)我们知道,这种数据规模下,如果直接存是绝对存不下的,所以不可能等全部计算完毕再取模,我们需要在每一步计算完的时候都插入一步取模。但是除法运算在取模环境下会失效,举例:但在模运算条件下:所以可以发现,在取模环境下,正常的除法失效了。
2026-09-15 20:44:14
39
原创 屑曾的ACM笔记(3)-st表
快速解决数组某个区间最值等问题,核心思路分治,本质为一种dp。时间复杂度:预处理O(nlogn),查询O(1)空间复杂度:O(nlogn)
2026-09-05 16:41:46
32
原创 Java异常处理底层原理全剖析:从异常表到finally的return陷阱
异常表是基石:JVM通过异常表实现异常分发,正常执行路径零开销。finally是编译器的把戏:不是JVM级别的特殊机制,而是编译器把代码复制粘贴到每条出口路径上。return拆分是关键:编译器把return拆成"暂存值"和"真正离开",finally插在中间,所以拥有最后发言权。异常被吞的真相:finally里的return直接终结方法,编译器不再追加重新抛出代码,异常随栈帧销毁而丢失。System.exit是降维打击:直接杀进程,Java层面的任何机制都来不及执行。设计哲学的现实妥协。
2026-07-06 19:56:27
315
原创 为什么比较排序逃不过 O(n log n)?—— 从决策树到桶排序的本质突破
想象一下,排序过程就像是在玩一个“猜排列”的游戏。根节点:初始状态,我们对数组的顺序一无所知。内部节点:每一次“比较”操作(例如根据结果,我们走向左子树或右子树。叶子节点:排序结束,得到了一个确定的顺序。这是证明的核心。假设我们要对[A, B, C]三个元素排序。这三个元素一共有 3!如果一个排序算法只有 5 个叶子节点,但有 6 种可能的输入。根据鸽巢原理。
2026-06-22 15:31:59
403
原创 cpp 取消同步流的写法及底层原理
*关掉的是 C/C++ 流之间的全局同步协议;关掉的是流与流之间的隐式刷新契约。**那么,为什么会有我们最初看到的:呢?我们来看cpp的源码:可以发现,tie()是basic_ios,ios_base的子类的一个函数,它的作用是传入一个指针类型参数,把tie绑定的指针更换为传入的新指针,同时返回原指针。而这是它返回的指针指向的对象:这个basic_ostream是basic_ios的一个子类而basic_ios是ios_base的一个子类这个ios_base呢?
2026-06-14 21:52:45
383
原创 UnrealEngine源码版编译过程中个人遇到的一些问题的解决方案
另外,在git上扒源码的时候直接下压缩包下来解压即可,直接clone的话git的网太差了很容易中断,然后一中断git又没有保存机制只能从头再来,我第一次不知道的时候一个多G的安装包clone了一整天都没弄好。下面讲一些个人遇到的问题,环境搭建这种东西挺玄学的,每个人电脑都可能会有自己的一些奇奇怪怪的问题,所以我也不敢保证我们的问题一定相同,但对于我遇到的问题可以提供一些解决方案。说明你的磁盘空间不足了。另外非常重要的事情是下载的时候一定要确保自己的文件路径绝对不能有中文,不然你编译的时候会找不到库的。
2026-05-30 17:36:51
378
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅