- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Kragers 最小切割算法中看到了一种边缘收缩的实现:
我们使用邻接关系将无向图表示为对称有向图列表表示。
(声明)每个顶点都有一个与相邻的边的双向链表它和指向列表开头和结尾的指针。表示一条边 u,v由两条弧 (u,v) 和 (v,u) 组成。这些弧具有彼此指向的指针。
u的邻接表中出现一条弧(u,v),并且有一个指向v的指针。
删除u的邻接表中的自环。这需要 O(d(u)+d(v)) 时间。
我无法理解第一步中替换反向弧(w,v)以及他所说的(声明)是什么意思?我只熟悉 C 语言,所以请仅引用 C 来解释我
最佳答案
为了具体起见,我们有一个类似的结构
struct Arc {
struct Arc *sym;
struct Arc *onext;
int edge;
int org;
};
。每条无向边都表示为两条弧,每个方向各一条。 edge
成员存储边的 ID。 sym
成员指向同一条边的另一条弧。 org
成员是弧的原点顶点的 ID(因此边位于 ->org
和 ->sym->org
之间.)onext成员指向下一条具有相同原点顶点的弧;这些弧循环地连接在一起。
对于一个非常简单的图表,例如
4 5
1 --- 2 --- 3
,我们有这样的结构。
struct Arc a12, a21, a23, a32;
a12.sym = &a21;
a12.onext = &a12;
a12.edge = 4;
a12.org = 1;
a21.sym = &a12;
a21.onext = &a23;
a21.edge = 4;
a21.org = 2;
a23.sym = &a32;
a23.onext = &a21;
a23.edge = 5;
a23.org = 2;
a32.sym = &a23;
a32.onext = &a32;
a32.edge = 5;
a32.org = 3;
现在让我们完成这些步骤。
让struct Arc *a
成为我们正在收缩的边的弧之一。我们有一个像这样的循环
struct Arc *b = a;
do {
b->org = a->sym->org;
b = b->onext;
} while (b != a);
遍历a->org
的邻接表。对于我们遇到的每个弧,我们必须将原点顶点更新为 a->sym->org
。
我们必须将涉及 a
和 a->sym
的循环拼接在一起。这是通过像(未经测试!)这样的交换来完成的
struct Arc *temp = a->onext;
a->onext = a->sym->onext;
a->sym->onext = temp;
.
这超出了我所描述的表示范围。
我们像以前一样迭代邻接列表,但这一次,我们必须更加小心,因为我们正在改变它。基本循环看起来很相似。
struct Arc *b = a;
/* look for a non-self-loop */
do {
if (b->sym->org != b->org) {
a = b;
goto found;
}
b = b->onext;
} while (b != a);
/* everything is a self-loop; time to terminate the algorithm */
return;
found:
do {
if (b->onext->sym->org == b->onext->org) {
/* splice out b->onext */
b->onext = b->onext->onext;
} else {
/* go to the next arc */
b = b->onext;
}
} while (b != a);
请注意,所有这些代码都未经测试。 a
中留下一条未删除的同源弧。
关于c - 使用随机收缩算法对无向图进行最小割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043083/
我对 ScalaCheck(以及整个 Scala)相当陌生,所以这可能是一个相当简单的解决方案 我正在使用 ScalaCheck 为 AST 生成测试并验证编写器/解析器是否工作。我有这些文件 AST
我首先创建一个特定大小的 JTextArea。用户可以在其中添加文本,但如果它变得太长(垂直或水平),它将被截断。我希望 JTextArea 自动扩展或收缩(用于删除文本)。 我将来可能会允许用户更改
我正在学习如何在浏览器更改大小时调整 div 元素的大小。我希望我的 slider (参见 Fiddle)始终显示 10 张幻灯片,即使浏览器变小(参见下图)也是如此。 目标: 我能想到的实现这一点的
嗨,我在使用 css 面板时遇到了一些问题,我有点想寻求帮助,我的代码运行良好,但是如果用户让浏览器缩小尺寸,面板就会出现在文本下面,这就是我的意思意思是: 这是正常浏览器大小下的样子: 如果用户将浏
我正在研究和实现事件轮廓的贪婪算法,如 Donna Williams 的论文 - 事件轮廓和曲率估计的快速算法中所述。 与另一种实现(Kass 等人的实现)相比的优势之一应该是沿等高线曲线的点均匀分布
在 PHP 中,如何复制 tinyurls 的扩展/收缩功能,就像在 search.twitter.com 上一样? 最佳答案 如果你想找出一个 tinyurl 的去向,使用 fsockopen 在端
有java.io.ZipInputStream膨胀和java.io.ZipOutputStream这会泄气。 但有时我不希望这样。有时,当使用接受 InputStream 的第三方 API 时,我想要
我试图做到这一点,以便在选择文件后,显示文件路径的文本字段会自动收缩/扩展以适合路径。 JFileChooser fileChooser = new JFileChooser(); if (fileC
我有两个 flexbox,它们在高度变化时收缩,嵌套内容重叠。 如何防止这种情况? 最佳答案 just add flex-shrink:0 to your element and the flexbo
想要逐渐“打开”和“关闭”表格中的行,适本地向下推或拉起下面的行。 我能够通过使用 transition 进行计时和使用 transform 进行大小调整来使 div 扩展/收缩(无法使用 heigh
我有一个10列24行的表,可以存储一个值,也可以是=0。它们被称为msg1,msg2...直到msg10。我正在编写一个查询,用 0 而不是任何字段中的特定值来更新此表。 所以我写了(59是一个测试值
有谁知道缩小/压缩 db4o 数据库的方法吗? 最佳答案 压缩/收缩是什么意思?缩小现有数据库?还是要压缩数据库? 其中一个角色是 defragmentation .这将释放数据库中未使用的空间。删除
我正在使用 flexbox 来布局页面,因为 growing 行为很有用。但我想完全防止收缩行为。 无论如何要管理这个? 示例代码: This one should gr
我是 jQuery/Javascript 的新手,甚至是通过缩小的 jQuery/Javascript 进行搜索的新手。 我正在尝试重新创建我在 Materialize 框架的表单组件中找到的一些功能
我有一个对象表及其类型,如下所示: objectType | object 107 Boeing 107 Airbus 323 Audi 323
我正在尝试使用以编程方式构建的 TableLayout 将 20x20 表格放入 View 中。 setStretchAllColumns/setShrinkAllColumns 方法非常适合压缩所有
我有一个 QDialog 和一个 QVBoxLayout 控制它的高度。 这个主要的 QVBoxLayout 由一个或多个 QVBoxLayout child 组成,后面是一些其他小部件。当我添加额外
如何缩小任意(未指定)宽度的居中图像周围的 anchor (绿色边框)?换句话说,我想要绿色边框居中的秒框,就像第一个一样。没有 float ,没有绝对定位。 移除行 (A) 中心,但 anchor
我正在制作一款安卓游戏。我在 Galaxy sII 上测试我的应用程序。我取得了很大进步。不幸的是,我忽略了对其他设备进行测试。我知道我会遇到不同类型设备的不同分辨率问题。但我认为我可以通过安排我的坐
如果 GUI 设计人员使用特定设备屏幕尺寸作为引用点提供 iOS 设计,那么如果应用程序在不同设备上运行,如何使字体扩展或收缩? 即假设设计者提供了一个以 iPhone 8 屏幕尺寸为引用的单一设计,
我是一名优秀的程序员,十分优秀!