![]() |
1
1
我认为您在这里考虑的“宽度”并不是您真正想要的-宽度取决于您如何将级别分配给每个节点,在每个节点上您有一些选择。在决定是将所有源分配给级别0还是将所有汇分配给最大级别时,您注意到了这一点。 相反,您只需要计算节点数,然后除以“关键路径长度”,这是DAG中最长的路径。这给出了图形的平均并行度。它只取决于图形本身,并且它仍然可以指示图形的宽度。 要计算关键路径长度,只需做你正在做的事情-关键路径长度是你最终分配的最大级别。 |
![]() |
2
1
在我看来,当你在进行这种最后一分钟的开发时,最好将新的结构与你已经使用的结构分开。在这一点上,如果时间紧迫,我会寻求一个更简单的解决方案。
问题是,正如基思·兰德尔所问,这是你需要的正确测量方法吗? |
![]() |
3
1
这是我(白金天青,原作者)迄今为止所拥有的。 准备/扩充:
算法:
所以到目前为止我就是这么想的。有办法改进吗?一路上都是线性时间,但有五六次线性扫描,可能会有很多缓存未命中等等。我想知道是否没有一种方法可以利用具有更好数据结构的某个局部性,而不必实际更改节点扩展以外的底层代码。 有什么想法吗? |
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 11 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 11 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 11 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |