小编Jon*_*onh的帖子

KMP故障功能的应用

关于KMP的许多文章都提到KMP本身的故障功能有很多应用.

一个这样的应用是找到最小的字符串,当连接k次时给出原始字符串(句点).

但我找不到任何其他的东西.还有哪些其他问题涉及KMP故障功能?

string algorithm

5
推荐指数
1
解决办法
872
查看次数

从堆中间删除节点

如果我们可以在恒定时间内找到堆中的元素,则可以在O(lg n)中完成从堆中间删除节点.假设堆的节点包含id作为其字段.现在,如果我们提供id,我们如何在O(lg n)时间内删除节点?

一种解决方案可以是我们可以在每个节点中具有位置的地址,其中我们维护堆中节点的索引.该数组将按节点ID排序.这需要维护额外的阵列.有没有其他好方法来实现同样的目标.

PS:我在实现Djikstra的最短路径算法时遇到了这个问题.

algorithm heap dijkstra data-structures

5
推荐指数
1
解决办法
1891
查看次数

分数大

除了学校方法之外,还有更快的方法来划分大整数(1000位或更多)吗?

biginteger division

2
推荐指数
1
解决办法
5655
查看次数

随机分段错误

我正在做一个游戏。在某些地方,有时我会收到分段错误,而在所有其他时间代码都可以正常工作。如果我再次运行游戏(在收到分段错误后)它会恢复(没有任何代码更改)并且运行良好。但过了一段时间又发生了这种情况。

我尝试使用 GDB 调试它。我得到以下信息:

  1. 有一个函数调用:func(&s.x),其中 s 是一个结构体,x 是它的 int 类型成员。地址 (&s.x) 是 0xb3456721
  2. 在函数 func 中,参数中接收到的值为 0xb。
  3. 程序崩溃说无法访问 0xb 处的内存。当我使用 GDB 打印变量时,我再次收到无法访问的内存。

任何想法为什么会发生这种情况?

c c++ segmentation-fault

1
推荐指数
1
解决办法
7025
查看次数